У меня есть ряд точек, которые делают метод getOrthodromicDistance потерпеть неудачу с исключением в GeoTools Lib, в то время как эти точки являются допустимой LAT точкой LON:расчета расстояния GeoTools не удается без исключения сходимости для нескольких лат точек Lon
Точки, которая бросает исключение (широта, долгота):
val p1= (5.318765,-75.786109)
val p2= (-6.32907,106.09254)
например, исключение: Нет сходимости точек 75 ° 47,2'W 06 ° 19,7'S и 106 ° 05,6'E 05 ° 19,1'N , java.lang.ArithmeticException: нет сходимости для точек 75 ° 47,2'W 06 ° 19,7'S и 106 ° 05,6'E 05 ° 19,1'N. в org.geotools.referencing.GeodeticCalculator.computeDirection (GeodeticCalculator.java:1073)
Код, используемый в Scala:
def latlonDistance(p1:(Double,Double), p2:(Double,Double)):Double={
val world= new GeodeticCalculator()
world.setStartingGeographicPoint(p1._2, p2._1)
world.setDestinationGeographicPoint(p2._2, p1._1)
world.getOrthodromicDistance
}
Примечание: Мой формат точка передается в latlonDistance есть (широта, долгота), как указано выше, setStartingGeographicPoint, setDestinationGeographicPoint need (lon, lat) .
Версия используется:
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-referencing</artifactId>
<version>13.2</version>
</dependency>
В питона работ, как и ожидалось:
>>> from geopy.distance import vincenty
>>> pt1= [5.318765,-75.786109]
>>> pt2= [-6.32907,106.09254]
>>> vincenty(pt1 , pt2)
Distance(19791.6883647)
Это метод orthodromicDistance в org.geotools.referencing.datum.DefaultEllipsoid, который не сходится. Любые обходные пути?
Я поднял сообщение об ошибке (https://osgeo-org.atlassian.net/browse/GEOT-5191), если вы хотите посмотреть его –
Да, я также изучил его. Библиотека GeographicLib - это решение кандидата, которое оно работает отлично, потому что он имеет другой реализованный алгоритм, который сходится для любой пары точек, в то время как Vincenty по дизайну этого не делает. Я буду следить за ошибкой thnx! – skonto
Пожалуйста, найдите набор из 130 пар точек, которые также могут служить в качестве тестового примера [плохие баллы] (https://www.dropbox.com/s/39jaqaitckzjcja/badpoints.txt?dl=0) – skonto