天地图服务需要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不支持百度作为底图使用。由于百度地图坐标系的坐标原点的特殊性,我们目前不支持百度地图作为地理底图。如果坐标数据来自于百度地图,数据上传时选择“百度坐标系”,可以与其他的地理底图进行匹配。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)