Google 地图如何知道我的位置?
Posted
技术标签:
【中文标题】Google 地图如何知道我的位置?【英文标题】:How does Google Maps know my position? 【发布时间】:2010-01-08 15:00:29 【问题描述】:我有一部诺基亚 5500 运动型手机,我发现我安装了谷歌地图后,它可以自动定位到我当前的位置。 我想知道谷歌地图如何获得我的位置并在地图上标记它? 如何用 symbian C++ 编程实现这个功能(诺基亚 5500 的操作系统是 Symbian 3rd)。
【问题讨论】:
【参考方案1】:这是您需要了解行话才能找到答案的问题之一。神奇的词是“Location API”。
使用它,我发现了这个:http://wiki.forum.nokia.com/index.php/Google_Maps_using_Location_Api_in_Symbian
对于移动设备,位置 API 有时或多或少隐藏了实际发现位置的详细信息,而只是告诉应用您在哪里。如果手机有 GPS,它将使用它。否则,电话网络会帮上忙——它可能会根据到一个或多个基站的距离和/或方向来计算,或者它可能只是说“对不起,我不能很准确,但我知道你在这个小区,所以你必须在几百码的基站(城市小区),或者几英里的地方(农村小区)。
我链接到的页面上使用的 API 似乎专门用于 GPS。不确定它是否存在于非 GPS 手机上,但如果您浏览 Symbian 文档足够长的时间,您可能会找到替代位置 API。
【讨论】:
请注意,所引用的文章谈到了将 google maps web api 与 Nokia Location API 相结合,而不是 google 提供的实际 Google Maps Symbian 应用程序。在某个时间点(我认为是 s60 第 3 版)之后,该 API 存在于所有 S60 手机上,如果没有可用的内置 GPS,则使用外部 BT GPS。 Symbian 选择了 Location API 并最终成为了自己的。【参考方案2】:Nokia 5500 没有 GPS,并且位置 API 不支持 S60 3rd edition fp1 上的网络定位(至少我很确定 - 我应该像我在 Symbian 上使用 LBS 应用程序时一样5500 已发布。)此外,网络定位需要运营商/运营商的支持,而很少有运营商在其网络中启用此功能。
Google 地图在没有 GPS 的每台设备上所做的事情是,它会将当前手机信号塔的 ID 发送到服务器,该服务器知道所有(?)手机信号塔在哪里,并且有根据地猜测您离该信号塔有多远.这在 Symbian 和 Java ME 设备上都是如此。
使用内置 GPS 可以更好地在谷歌地图中定位。 Nokia Location API 还支持外部 BT GPS,这是 API 发布时可用的所有功能。
【讨论】:
【参考方案3】:它没有 GPS,所以我猜它与您的 GSM 提供商的不同天线通信,并使用这些天线的坐标对其位置进行三角测量。
【讨论】:
【参考方案4】:您的手机可能有 GPS - 即使没有,它也可以根据手机信号塔进行三角测量。以编程方式,您必须注册@Nokia(免费,IIRC),获取 symbian 文档并使用它。
祝你好运,GPS 很有趣(也很疯狂)
有关 symbian 查询、答案和投诉,请参阅此帖子Should I learn how to develop on Symbian OS?
【讨论】:
我只想知道symbian中是否有任何功能可以获取最近的手机信号塔的位置或获取我当前的位置?或者关于获取位置或坐标的其他编程细节。 史蒂夫有我认为的答案。【参考方案5】:W3C 有一个 draft standard 用于 javascript 中的地理定位,这意味着一段地理定位代码可以让您的网站地理定位适用于所有手机。到目前为止,Safari on iPhone 和 Google android 手机都支持它。我们都应该请求诺基亚在 Symbian 手机中支持它。
【讨论】:
以上是关于Google 地图如何知道我的位置?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 android studio 更改 Google 地图中“我的位置”按钮的位置
如何在点击时更新我的地图在 Google 地图中的位置?