Google地图如何确定用户在地图上的位置?

时间:2012-08-21 00:44:24

标签: iphone ios google-maps maps location

我想制作iPhone地图应用程序。我知道iPhone可以提供用户特定位置的详细经度和纬度坐标。 Google地图和其他地图应用程序如何将用户的位置转换为地图上的位置?似乎有很多事情需要考虑。例如,如果地图被旋转​​了,在我看来它有很多缩放和要考虑的东西。 Google地图如何将用户的当前位置转换为地图上的特定点并使其准确(在2到3米之内)。我真的很感激答案或任何帮助。谢谢!

3 个答案:

答案 0 :(得分:2)

Google地图应用程序知道:

  • Google地图服务将地图划分为图块的方式
  • 每个地图图块的大小和位置(纬度/经度)
  • 用户选择的缩放级别
  • 设备屏幕的大小
  • 设备报告的位置纬度和经度

使用此信息,地图应用程序可以执行一些简单的线性算法,以找出需要在屏幕上显示哪些图块,以便用户的位置显示在屏幕中间(或任何需要的位置)。

答案 1 :(得分:0)

Google地图使用一些不同的方法来获取用户的位置,包括用户所连接的移动网络塔的位置(有时Google使用2个或更多塔的三角测量来使其更准确http://techcrunch.com/2007/11/28/google-mobile-maps-pinpoints-your-location-without-gps/ ),ISP的位置,如果用户连接到WiFi和GPS。

最准确的是GPS,它为谷歌提供精确到内部的纬度和经度坐标(如果我没记错的话)10米。 Google地图系统中的所有图像都存有针对它们存储的GPS坐标,因此Google必须做的就是检索正确的地图图像并绘制用户在图像上的位置。

我认为这就是你所追求的,但如果你需要更多关于某些事情的细节,或者如果我误解了,请发表评论,我会修改这个答案。

修改

请参阅此页,其中详细介绍了在iPhone上使用Google地图https://developers.google.com/maps/articles/tutorial-iphone

您无需对在地图上放置标记以显示用户位置的算法进行编码,只需在Google Maps API中调用函数/方法即可,它可以为您完成所有工作。我建议您仔细查看Google Maps API文档,找到所需内容(也可在上一个链接中找到)。

我认为这可能是您所追求的精确代码片段: https://developers.google.com/maps/documentation/javascript/overlays#Markers

答案 2 :(得分:0)

确定您的位置时,您的标题/轮换无关紧要。您的位置基于从GPS卫星收到的数据。有多颗卫星,并根据您与每颗卫星的距离,您的位置缩小到一个点。这一点有一对非常详细的坐标(想想小数点后10位)。 Google提供的地图上的每个点都与一对坐标相关联。因此,当您的手机找出您的坐标时,它会检查地图上的对应位置,并将您放在地图上。所有其他位置也基于坐标。

现在,地图还有一个地图根据您的标题旋转的设置。该功能使用手机具有的内置指南针。自从3GS以来,iPhone已经有了内置指南针。我相信。

简而言之,将Google提供的地图视为Google提供的极高分辨率图像,此图像上的每个像素(或更少)都对应于一对坐标。确定坐标后,无论缩放级别如何,您都放置在该图像上的相应点上。