更改Cesium.js中的地图投影以匹配查询中的turf.js的结果

时间:2017-06-06 15:28:50

标签: geojson cesium turfjs

我在Cesium.js中显示一个点和一个多边形,并使用turf.js来检查多边形内的点。

当在Cesium(或geojson.io)中显示时,该点明显位于多边形之外,如下所示:

http://geojson.io/#id=gist:kujosHeist/1030e392bd751daf5d9af57aa412a49c&map=3/46.80/-22.76

然而,当我在turf.js issiues页面上查询时:

https://github.com/Turfjs/turf-inside/issues/15

我被告知这是因为geojson(以及因此Cesium)歪曲了这一点,因为它使用了World Web Mercator投影(EPSG:3857)"并且#34;使用WGS84和QGIS"查看相同的点/多边形...显示该点位于多边形内部。

所以我的问题是:如何更改Cesium中使用的地图投影(如果可能,还可以更改geojson.io),以便在多边形内正确显示该点?

1 个答案:

答案 0 :(得分:1)

我不确定geojson.io或Cesium如何处理不同的坐标系,但您可以在GeoJSON中指定一个CRS元素,用于指示要素点使用的坐标系。这是作为功能集合下的成员添加的。例如:

{
    {
    "type": "FeatureCollection",
    "crs": {
    "type": "name",
    "properties": {
      "name": "urn:ogc:def:crs:OGC:1.3:CRS84"
    },
    ...the rest of your structure...
}

但就像我说的那样,它可以通过地图显示软件来关注你指定的CRS并用它来投射coords。如果它不支持您的坐标系,那么您需要选择一些其他地图显示软件或将坐标转换为支持的坐标系。