наложение координат широты/долготы GPS на статическую карту Google с использованием математики (mercator)

(без использования библиотеки проекций) Я знаю центральную точку моей карты, размер (-37,500,175,500).масштаб (13). 400x400px, это проекция Меркатора (стандартная карта Google). Используется как фоновое изображение на холсте 400х400px. Как мне определить границы этой карты.


person user1637477    schedule 10.03.2013    source источник


Ответы (1)


предполагается, что вы заказываете карту с использованием координат центра,
Zoom = 13 //уровень масштабирования Google Maps (1-18 и т. д.)
screenwidth=400(пикселей) //ширина карты
Latctr = -37,450 / /широта середины карты
Longctr = 170.250 //долгота середины карты
1/ Lengthlat = 111111 // длина в метрах на 1 градус широты
2/ Lengthlong = cos lengthlat * 111111 // Длина в 1 градус долготы
3/ Ratiolengths == lengthlat/lengthlong
4/ LongitudeValueAdjust = ((lengthlat/(2^zoom)/(ширина экрана*2)* RatioLengths
5/ LatitudeValueAdjust = (lengthlat /(2^масштаб)/(ширина экрана*2)
6/ Северо-западная широта = latctr + широтаValueAdjust
7/ Северо-западная долгота = longctr -longValueAdjust
8/ Юго-восточная широта = latctr - LatValueAdjust
9/ Юго-восточная долгота = longctr + longValueAdjust
Теперь вы знаете координаты углов карты

Plotting lat lng to canvas/screen x,y  
//This is not a mercator projection, works fine for zooms > 9
Assumes 0,0 is the top left hand corner of the canvas  
lattodraw // Latitude value of the coordinate we wish to convert  
longtodraw // Longitude value of the coordinate we wish to convert  
1/Latplot = canavsheight /(southeastlat-northwestlat) * lattodraw-northwestlat  
2/Longplot = canvaswidth /(southeastlong-northwestlong) * longtodraw-northwestlong  
3/Draw pixel at latplot,longplot  
person user1637477    schedule 19.03.2013