Мои изображения не привязаны к карте 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