当前位置: 首页 > 知识库问答 >
问题:

使用math(墨卡托)在静态google地图上覆盖LAT/LNG gps坐标

邓英卓
2023-03-14

(不使用投影库)我知道我地图的中心点,(-37.500,175.500)。缩放(13)大小。400x400px,这是墨卡托投影(标准谷歌地图)。它被用作400x400px画布上的背景图像。我怎么算出这张地图的界限。

共有1个答案

夹谷腾
2023-03-14

假设您使用中心坐标订购地图,
Zoom=13//Google maps缩放级别(1-18等)
ScreenWidth=400(像素)//地图宽度
Latctr=-37.450//地图中部纬度
Longctr=170.250//地图中部经度
1/Lengthlat=111111//1纬度长度(以米为单位)
2/Lengthlat=cos Lengthlat*111111//1经度长度
3/Ratiolengths==Lengthlat/Lengthlat
4/LongludeValueAdjust=Southeastlat=latctr-latvalueadjust
9/Southeastlong=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  
 类似资料:
  • 我有一个图像,我想覆盖在地图上的特定位置,看起来像当前静态地图图像服务没有提供任何参数传递。

  • 问题:如何将要正确显示的地图位置转换到此地图图像上? 更多细节:基本上,地图将是一个矩形区域(即Div元素),其中矩形的左上角明显是(0,0)。所以基本上地图的位置将会相对于这个左上角显示。

  • 基于这种后转换LAT/LON到像素坐标?,这与真正的墨卡托投影很好地工作。 我面临一个问题的svg地图从openstreet map使用“谷歌墨卡托投影与简化网格(1000)”。 我试着在我的法国地图上画一些城市,所有的点都在这里,但不是它们应该在的地方 svg是基于openmapstreet的pdf在Inkscape中创建的,代码有点长,我在这个fiddle中复制粘贴iti(因为我没有附上Rap

  • 我有一个从Google maps下载静态图像的应用程序,将标记放置在我想要的位置(通过将参数传入Google static maps URL来放置)。但是,我也需要能够点击标记。我想我可以将x和y坐标转换为lon/lat,然后用这种方法计算出哪个标记被点击了,但我发现这并不容易。 我知道地图的尺寸(以像素为单位),缩放级别,以及地图的中心点(以像素和lon/lat为单位),所以我跟踪了这篇博文。不

  • 我在AWS/S3上与其他域名注册商建立了许多静态站点;但是,google域给我带来了一些问题。 我采取的步骤: -在S3/AWS上: > 已创建桶domainname.org 通过添加index.html启用静态网站托管 已将index.html和相关文档上载到存储桶 创建桶www.domainname.org以重定向到桶domainname.org 为domainname.org创建了桶策略,如

  • 关于这个话题有很多问题,也有很多答案,但似乎没有一个对我的代码起作用,不确定是不是转换公式或其他东西在整个代码上有问题。经度值似乎如预期的那样起作用,但我未能将纬度转换为地图上的y值。我将添加一个jsfiddle和代码,以及我尝试过的公式的一些链接。我所读到的谷歌地图是一种墨卡托投影,它使用了投影的双重版本(椭球和球面),通用公式在这种情况下不会那么精确,但我没有20km的差异,而是点在地图中的任