0

我对 turfJS 的 along() 方法有疑问。看来 turfJS 我的坐标有问题。

var alongLine = {
  "type": "Feature",
  "properties": {},
  "geometry": {
    "type": "LineString",
    "coordinates": [
      [-37.86902659740041, 144.6185302734375],
      [-37.86902659740041, 145.57159423828125]
    ]
  }
};

var newPoint = Turf.along(alongLine, 1, 'miles');
console.log('Walked 1 miles', newPoint);

代码运行后,这是我得到的控制台日志:

  Walked 1 miles { type: 'Feature',
geometry: { 
  type: 'Point',
  coordinates: [ -37.86902659740041, 35.367001095372345 ] },
  properties: {} 
}

如您所见,坐标为-37。和 35。但是当沿着这条线走 1 英里(即 -37 和 145)时,我不明白为什么它这么远(它就像这条线的地球的一半!)。

当使用 TurfJS 文档中的测试坐标时,它似乎工作正常,但我的坐标破坏了。怎么会这样 ?

您可以在此处找到带有示例的文档:http: //turfjs.org/static/docs/module-turf_along.html

使用他们的示例坐标时

[-77.031669, 38.878605],
[-77.029609, 38.881946],
...

结果是(即使只使用 2 个点并且使用不到一英里:它总是返回正确的点):

Walked 1 miles { type: 'Feature',
geometry: { 
  type: 'Point',
  coordinates: [ -77.02417351582903, 38.885335546214506 ] },
  properties: {} 
}
4

1 回答 1

2

您的坐标对顺序错误。GeoJSON 需要[longitude, latitude]坐标对的排序。

这是 GeoJSON 规范:http://geojson.org/geojson-spec.html

这是坐标对排序的方便参考:http: //www.macwright.org/lonlat/

这是一个您可以用来快速可视化您的 GeoJSON 的网站:http: //geojson.io/

于 2015-10-15T14:46:23.550 回答