2016-12-15 20 views
-4

У меня есть требование определить расстояние от каждой точки (лат/длин) до каждой точки в представленной коллекции. Это может быть от 2 до 200 баллов. Необходима формула, подобная Хаверсину. Например, A, B, C вернут A-B - x.x метры, A-C - x.x метров, B-C = x.x метров.Расчет расстояния с помощью заданного набора точек

Я рассматриваю варианты как собственное решение на Java или, возможно, использовать распределенные вычисления, такие как Hadoop/Apache Spark ИЛИ инструмент, подобный инструменту GeoProcessing (ESRI/ARCGIS).

Спрашивал ли кто-нибудь это требование раньше?

Любые уроки?

+0

Вы должны задать конкретные вопросы здесь – ControlAltDel

+0

200 точек потребуется 199 расчеты факториальных расстояний, которые займут много времени, независимо от того, как вы выполняете расчет. –

ответ

0

Для расстояния в метрах между точками с координатами (lon, lat) [примечание X, Y порядок] с Esri Spatial Framework для Hadoop используйте ST_GeodesicLengthWGS84.

More samples of ST_GeodesicLengthWGS84 can be found in this test script.

Связанные Q/A на ГИС-SE: https://gis.stackexchange.com/questions/170479/join-on-range-query-using-esris-gis-tools-for-hadoop/#185660

[Раскрытие: Соавтор.]

обновление: Java API - GeometryEngine.html#geodesicDistanceOnWGS84