Я работаю с некоторыми открытыми данными, включая шейп-файлы, и мне удалось преобразовать данные в GeoJSON и извлечь координаты точек (вместе с другой информацией). Однако координаты не являются координатами широты / долготы:
[ 368667.2455000002, 5009510.4067 ]
[ 367885.47140000015, 5019804.3237 ]
[ 395852.80260000005, 5027699.9354 ]
[ 379358.1364000002, 5036798.5747 ]
[ 351968.9621000001, 5017404.8727 ]
[ 375123.64269999973, 5033338.467499999 ]
[ 378133.7736999998, 5032617.237500001 ]
[ 385791.0351, 5010557.9144 ]
[ 349796.77770000044, 5013571.1559999995 ]
[ 367271.0566999996, 5030212.897399999 ]
[ 378808.0292999996, 5013921.017100001 ]
[ 336650.69820000045, 5039983.886399999 ]
[ 364178.05599999987, 5015957.9625 ]
[ 362715.9132000003, 5023112.371200001 ]
[ 351321.0865000002, 5013763.298699999 ]
[ 373254.0789000001, 5026533.7453000005 ]
[ 355235.6211000001, 5016957.0644000005 ]
[ 327797.9938000003, 5036758.195699999 ]
[ 362836.86930000037, 5015895.811000001 ]
[ 375479.41530000046, 5001245.2017 ]
При дальнейших исследованиях я обнаружил, что мне нужно «спроецировать» эти координаты относительно данных в файле PRJ:
PROJCS["City of Ottawa",
GEOGCS["GCS_North_American_1983",
DATUM["D_North_American_1983",
SPHEROID["GRS_1980", 6378137.0, 298.257222101]
],
PRIMEM["Greenwich", 0.0],
UNIT["Degree", 0.0174532925199433]
],
PROJECTION["Transverse_Mercator"],
PARAMETER["False_Easting", 304800.0],
PARAMETER["False_Northing", 0.0],
PARAMETER["Central_Meridian", -76.5],
PARAMETER["Scale_Factor", 0.9999],
PARAMETER["Latitude_Of_Origin", 0.0],
UNIT["Meter", 1.0]
]
Я уже прочитал Что представляет собой файл проекции esri? и впоследствии https://gis.stackexchange.com/questions/2383/does-re-projecting-an-esri-shapefile-only-update-the-content-of-the-prj-file/2386#2386 < / а>. Хотя они описывают, что файлы проекции делают / являются, нет обсуждения того, как выполняется преобразование.
В отличие от шейп-файлов, мне не удалось найти спецификацию файлов PRJ. Есть ли алгоритм, который используется для преобразования координат в координаты широта / долгота?
Я также открыт для использования библиотек, но они должны быть совместимы либо с Android (GeoTools не работает для меня), либо с JavaScript (Node).