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