合抱之木,生于毫末; 九层之台,起于累土; 千里之行,始于足下。
前言
一、常用的坐标转化
目前常用GIS坐标系有:
EPSG:4326坐标系
:目前最通用的标准坐标系,平时我们常说的经度纬度多少多少、从GPS 设备、智能手机中取出的数据的坐标系、国际地图提供商使用的坐标系 都是这个坐标系
EPSG:3857坐标系
:Web Mercator(墨卡托)投影坐标系,该坐标系是由Google 最先发明的
EPSG:4490坐标系
:2000国家大地坐标系,是我国当前最新的国家大地坐标系
CGCS2000 高斯平面投影坐标系(EPSG:4491至EPSG:4554)
:支持CGCS2000 Gauss-Kruger Zone 和 CGCS2000 Gauss-Kruger CM 的3度带和6度带平面投影
1、 地理坐标(经纬度)转 笛卡尔坐标
现在有经纬度坐标{lng:116.3123,lat:31.8329}
let item = {lng:116.3123,lat:31.8329}
const points = Cesium.Cartesian3.fromDegrees(item.lng, item.lat); //经纬度坐标转笛卡尔坐标
转化后的值为
2、笛卡尔坐标 转地理坐标(经纬度)
现有笛卡尔坐标同上图转化后的坐标
let cartesian3 ={x:...,y...,z...}
const points = mars3d.LatLngPoint.fromCartesian(cartesian3);
3、其它坐标系直接的转化
//屏幕坐标 转换为 笛卡尔空间直角坐标
var cartesian3 = mars3d.PointUtil.getCurrentMousePosition(map.scene, windowPosition);
//笛卡尔空间直角坐标 转换为 屏幕坐标
var windowPosition = Cesium.SceneTransforms.wgs84ToWindowCoordinates(map.scene, cartesian3);
//笛卡尔空间直角坐标 转换为 地理坐标(弧度制)
var cartographic = Cesium.Cartographic.fromCartesian(cartesian3);
//笛卡尔空间直角坐标 转换为 地理坐标(经纬度)
var point = mars3d.LatLngPoint.fromCartesian(cartesian3);
//地理坐标(弧度制) 转换为 笛卡尔空间直角坐标
var cartesian3 = Cesium.Cartesian3.fromRadians(lng, lat, height); //lng\lat为弧度制
//地理坐标(经纬度) 转换为 笛卡尔空间直角坐标
var cartesian3 = Cesium.Cartesian3.fromDegrees(longitude, latitude, height);
二、事件机制
1、支持的所有事件类型
2、如何使用呢?
先创建一个简单的矢量数据对象 Label文字矢量数据对象。
// 创建矢量数据图层
const graphicLayer = new mars3d.layer.GraphicLayer()
map.addLayer(graphicLayer)
function demo() {
const graphic = new mars3d.graphic.LabelEntity({
position: new mars3d.LatLngPoint(116.308659, 30.914005, 429.94),
style: {
text: "云深不知",
font_size: 25,
font_family: "楷体",
color: "#003da6",
horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
visibleDepth: false
}
})
graphicLayer.addGraphic(graphic) //将矢量数据添加到图层中
}
现在需要监听文字绘制完成后
graphicLayer.on(mars3d.EventType.drawCreated, function (e) {
console.log("绘制完成")
})