Ошибка точности при преобразовании координат с помощью proj4js

Я использую библиотеку Proj4js для преобразования координат. Я преобразую координаты из EPSG: 23029 в EPSG: 4326. Проблема в том, что при преобразовании координат есть некоторое отклонение от точности, используемой при обработке нагрузки. Я заметил это, преобразовав систему координат из источника в пункт назначения и наоборот. Код, который я использую для преобразования:

<script type="text/javascript" src="/proj4js/lib/proj4js-compressed.js"> </ script>
<script type="text/javascript" src="/proj4js/lib/projCode/merc.js"> </ script>
<script type="text/javascript" src="/projCode/tmerc.js"> </ script>
<script type="text/javascript" src="/proj4js/defs/EPSG23029.js"> </ script>
<script type="text/javascript" src="/proj4js/defs/EPSG4326.js"> </ script>

source = new Proj4js.Proj ('EPSG: 23029');
dest = new Proj4js.Proj (map.projection.toString ());

x = feature_selected.geometry.x;
y = feature_selected.geometry.y;

p = new Proj4js.Point (x, y);

p = Proj4js.transform (source, dest, feature_selected.geometry);

Когда я делаю преобразование в обоих направлениях, точка происхождения не совпадает.

 x1= -6.34378379330039
 y1=  39.48007480688388

 x2= -6.343783791584894
 y2= 39.4800748068322604

Кто-нибудь знает, как решить эту проблему?

Благодарю.

1 ответ

Вы всегда потеряете некоторую точность при конвертации между проекционными системами. Существует несколько источников ошибок, в том числе ограничения арифметики с плавающей запятой в движке JavaScript и обратимость преобразования между проекциями.

С другой стороны, откуда берутся ваши исходные данные? Учитывая, что вы теряете точность только с точностью до девятого знака после запятой, вполне вероятно, что ваши исходные данные на самом деле не настолько точны для начала (конечно, не ваш обычный GPS или даже с дифференциальной коррекцией), поэтому нет особого смысла беспокоиться об ошибках, внесенных в алгоритм перепроецирования.

РЕДАКТИРОВАТЬ: Итак, после некоторых вычислений - ваша ошибка после двух повторных проекций составляет около 1/10 миллиметра. Я очень сомневаюсь, что стоит попытаться улучшить это для любого реального применения.

Другие вопросы по тегам