乱步_sama 2025-03-11 11:20 采纳率: 0%
浏览 36

cesium贴图会自动上下拉伸?

在cesium中贴图 图片位置范围和二维范围一致 图片一致 却内容显示不一?
二维显示正常如图

img


代码如下:

    const SW = new BMapGL.Point(140.209411, 12.316339);
    const NE = new BMapGL.Point(69.646079, 54.376029);
    const groundOverlayOptions = {
        opacity: 0.5
    }
    const groundOverlay = new BMapGL.GroundOverlay(new BMapGL.Bounds(SW, NE), groundOverlayOptions);
    groundOverlay.setImage(url);
    map.addOverlay(groundOverlay)

cesium显示不正常如图(二维模式下):

img


代码如下:

    const imageryProvider = new Cesium.SingleTileImageryProvider({
        url: 'img/leida/wg2.jpg',
        rectangle: Cesium.Rectangle.fromDegrees(
            69.646079, 12.316339,
            140.209411, 54.376029
        )
    });
    const imageryLayer = Config.Viewer.imageryLayers.addImageryProvider(imageryProvider);
    imageryLayer.alpha = 0.5;

可以看到

img

img

北京市因为cesium拉伸显示到不同区域了。
图片和范围都是一样的 显示却不一样? 没有没能显示一样的方法?

  • 写回答

3条回答 默认 最新

  • 道友老李 JWE233286一种基于机器视觉的水表指针读数识别及修正的方法 专利发明者 2025-03-11 11:31
    关注
    让【道友老李】来帮你解答,本回答参考gpt编写,并整理提供,如果还有疑问可以点击头像关注私信或评论。
    如果答案让您满意,请采纳、关注,非常感谢!
    在Cesium中使用SingleTileImageryProvider时,需要确保图片的原始尺寸与指定的矩形范围一致,否则可能导致内容显示不一致。在你的示例中,图片的范围和位置是一致的,但可能由于图片本身尺寸不对导致显示不一致。 你可以尝试使用Cesium的Rectangle.clone方法来获取正确的矩形范围,然后将其传递给SingleTileImageryProvider,如下所示:
    const rectangle = Cesium.Rectangle.fromDegrees(69.646079, 12.316339, 140.209411, 54.376029);
    const imageryProvider = new Cesium.SingleTileImageryProvider({
        url: 'img/leida/wg2.jpg',
        rectangle: Cesium.Rectangle.clone(rectangle)
    });
    const imageryLayer = Config.Viewer.imageryLayers.addImageryProvider(imageryProvider);
    imageryLayer.alpha = 0.5;
    

    通过确保矩形范围的正确性,应该可以解决内容显示不一致的问题。您可以尝试使用上述代码并查看是否能够解决您的问题。如果问题仍然存在,您可能需要进一步检查图片尺寸是否正确以及其他可能导致显示不一致的因素。希望能帮助到您。

    评论

报告相同问题?

问题事件

  • 修改了问题 3月11日
  • 修改了问题 3月11日
  • 修改了问题 3月11日
  • 创建了问题 3月11日