Мои изображения не привязаны к карте Google

Я пытаюсь отобразить изображение (плитки) поверх карт Google. Он отлично работает, за исключением того, что изображение не очень хорошо выровнено по картам Google

Перед тем, как сгенерировать изображение, я сначала вычислил размер, ширину и высоту изображения, преобразовав широту и долготу в местоположение в пикселях для определенного увеличения (пример 19), используя SphericalMercator. как показано в примере Google https://developers.google.com/maps/documentation/javascript/examples/map-coordinates

Например:

Left Corner  Lat,Lng = 23.635069377090115 ,58.09107364729487
Pixel projection using SphericalMercator for zoom 19 , x= 88766786 , y=58035976

bottom, right Lat,Lng = 23.598520856653636, 58.14957298218598
Pixel projection using SphericalMercator for zoom 19 , x= 88788596 , y=58050848

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

например:

x2-x1= 21810
y2-y1= 14872

Я использовал инструмент для преобразования плана AutoCAD в изображение с вышеупомянутой шириной изображения, высотой.

Затем я нарезал изображение на плитки с помощью imageMagic:

convert -crop 256x256 test4.png tile%d.png

и чем я показываю эти плитки.

Плитка отображается, но она плохо выровнена. Я что-то пропустил?

1 ответ

Решение

Если вы заинтересованы в понимании математики, лежащей в основе плиток "Сферический Меркатор", и сами вырезаете изображения, проверьте мэшап и исходный код, который я подготовил на странице:

http://www.maptiler.org/google-maps-coordinates-tile-bounds-projection/

Он также доступен на других языках программирования (PHP,C# и т. Д.), Переписанных другими людьми.

Если вы просто хотите решить задачу - и иметь идеально подходящий оверлей, оптимизированный размер плиток, образец просмотра не только для Google Maps API и многое другое, просто загрузите MapTiler с http://www.maptiler.com/.

Для изображений, не имеющих географической привязки, вы либо предоставляете Граничную рамку (координаты для севера, юга, востока, запада) или можете визуально идентифицировать объекты на карте, как показано в этом видеоуроке: http://youtu.be/eJxdCe9CNYg

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