Cesium加载在线地图服务

Cesium加载在线地图服务,第1张

互联网的地图服务一般有天地图,高德地图,百度地图,ArcGIS地图,OSM地图,这里就给大家一一列举出来如何使用Cesium加载这些在线的地图服务。

天地图服务需要tk,国家地理信息公共服务平台 天地图

百度地图由于切片中心点位于地理坐标的(0, 0)点,所以百度地图的加载需要使用自定义的provider,这里是自定义的provider「链接」

1.屏幕坐标(像素值)

2.笛卡尔平面坐标    new Cesium.Cartesian2(x,y)

3.笛卡尔空间直角坐标  new Cesium.Cartesian3(x,y,z)

4.地理坐标(默认为弧度值)new Cesium.Cartographic(longitude,latitude,height)

1.获取鼠标单击后在屏幕中的坐标

var hander=new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas)

hander.setInputAction(function(event){      //绑定鼠标左点击事件

var windowPosition=event.position            //鼠标点的windowPosition

},Cesium.ScreenSpaceEventType.LEFT_CLICK)

2.屏幕坐标转换为笛卡尔空间直角坐标

//三维模式下

var ray=viewer.camera.getPickRay(windowPosition)

var cartesian=viewer.scene.globe.pick(ray,viewer.scene)

//二维模式下

var cartesian=scene.camera.pickEllipsoid(position,scene.globe.ellipsoid)

3.笛卡尔空间直角坐标转换为屏幕坐标

var pick=Cesium.SceneTransforms.wgs84ToWindowCoordinates(viewer.scene,cartesian)

4.笛卡尔空间直角坐标转换为地理坐标(弧度制)

var cartographic=Cesium.Cartographic.fromCartesian(cartesian)

5.地理坐标(弧度制)转换为笛卡尔空间直角坐标

var position =Cesium.Cartesian3.fromRadians(lng,lat,height)

6.笛卡尔空间直角坐标转化为  地理坐标(经纬度)

var cartographic=Cesium.Cartographic.fromCartesian(cartesian)

var lat=Cesium.Math.toDegrees(cartographic.latitude)

var lng =Cesium.Math.toDegrees(cartographic.longitude)

var height=cartographic.height

(经纬度度数与弧度互转)

Cesium.Math.toRadians(degrees)

Cesium.Math.toDegrees(radians)

7.地理坐标(经纬度)转换为 笛卡尔空间直角坐标

var position =Cesium.Cartesian3.fromDegrees(long,lat,height)

thingjs不支持百度作为底图使用。由于百度地图坐标系的坐标原点的特殊性,我们目前不支持百度地图作为地理底图。如果坐标数据来自于百度地图,数据上传时选择“百度坐标系”,可以与其他的地理底图进行匹配。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11545868.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存