0

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

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

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

但是,当我在 turf.js 问题页面上查询时:

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

有人告诉我这是因为geojson(以及Cesium)“歪曲了这一点,因为它使用了万维网墨卡托投影(EPSG:3857)”并且“使用带有QGIS的WGS84查看相同的点/多边形”......显示点在多边形内。

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

4

1 回答 1

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 并使用它来投影坐标。如果它不支持您拥有的坐标系,那么您需要选择其他一些地图显示软件或将坐标转换为支持的坐标系。

于 2017-06-09T20:05:32.733 回答