необходимо вычислить координату точки пересечения, которая находится между дорогой и обозначенным расстоянием от начальной точки

Зная координату начальной точки на дороге, необходимо рассчитать координату точки пересечения, которая находится между дорогой и обозначенным расстоянием от начальной точки. Этот тип вопроса аналогичен функции SDO-LRS.LOCATE_PT в Oracle пространственный 。Имеет ли аналогичный API для GeoTools или neo4j пространственный?


person yang jun    schedule 19.05.2011    source источник


Ответы (2)


Я не уверен, что геоинструменты предоставляют именно эту функцию. Однако в JTS есть родственный, который используют и Geotools, и Neo4j-Spatial. Посмотрите на пакет JTS com.vividsolutions.linearref, в котором есть классы для поиска точек вдоль линейной геометрии или создания/проецирования точек. Я думаю, что метод LengthIndexedLine.extractPoint(length) может быть тем, что вы ищете.

В Neo4j-Spatial у нас есть утилита, которая использует LocationIndexedLine (но еще не LengthIndexedLine). См. тестовый код в TestSpatialUtils и код, который он вызывает, в SpatialTopologyUtils.

В этом году также есть два проекта Google Summer of Code, которые работают над функциями, связанными с этим. Один из них посвящен геообработке, и мы предоставим такие функции с помощью простого API в Neo4j-Spatial. Другой больше касается интеллектуального анализа данных моделей данных OSM, но также может касаться этих функций. Для получения дополнительной информации смотрите списки рассылки neo4j и udig. К концу лета у нас будет гораздо более богатый набор функций геообработки, доступных в Neo4j-Spatial.

person Craig Taverner    schedule 21.05.2011

Я только что отправил некоторый код в Neoj4-Spatial, чтобы обернуть метод JTS LengthIndexedLine.extractPoint новым методом locatePoint, который ведет себя так же, как методы Oracle SDO_LRS.LOCATE_PT. Итак, по крайней мере, на транке Neo4j-Spatial теперь имеет эту возможность. На самом деле код для этого тривиален, так как он является оберткой для кода JTS, поэтому возможности всегда были, но теперь они немного больше похожи на Oracle API.

Ранее упомянутые проекты GSoC попытаются несколько стандартизировать API, чтобы более полный набор функций был доступен интуитивно понятным способом.

person Craig Taverner    schedule 02.06.2011