任何人都可以向我解释为什么当我允许HTML5地理位置演示使用我的位置时,它总是返回纽约,但是,当我走到手机上时,它会显示我的确切位置?我正在尝试在我的网站上实现“当前位置”功能,但我不知道它是否可行。为什么地理定位不能返回确切地址
谢谢
任何人都可以向我解释为什么当我允许HTML5地理位置演示使用我的位置时,它总是返回纽约,但是,当我走到手机上时,它会显示我的确切位置?我正在尝试在我的网站上实现“当前位置”功能,但我不知道它是否可行。为什么地理定位不能返回确切地址
谢谢
那么,谢谢你有没有一种方法可以模仿谷歌在他们的地图上的位置? – 2012-02-20 06:18:30
我不明白你的问题。您的手机拥有比您的电脑更精确的地理定位设备。你不能从石头上获得血液。 – 2012-02-20 06:20:46
@Eric - google在某些时候使用了你*给予的地址,或者他们认为你的地址是基于你的搜索,地图使用,行为等,以及你的IP地理定位的一般区域。它们并不是魔法般地将它从计算机中排除出去。可怕,不是吗? – 2012-02-20 06:22:18
手机提供了许多附加信息,可用于比典型的有线桌面更准确地确定您的位置。值得注意的是:
一般来说,GPS可用时,很可能会给最高的精度。通过清晰的天空视图,大多数手机都可以使用GPS将您的地理位置定位在5米或更短的范围内。
公司像谷歌/苹果有信息匹配已知AP SSID S/MAC地址的地理位置。手机能够将信息发送给服务(例如Google的geolocation API),以了解其可以看到的AP及其信号强度。该服务根据它对这些AP的了解以及服务提供商用于根据AP信号强度确定位置的任何专有算法返回位置估计值。
很像的Wi-Fi信息,您的手机可以手机信号塔的知名度/信号强度信息欢送到可以基于它知道所考虑的蜂窝塔估测位置的服务。
这里是一个什么样的手机可以发送关闭以Google's geolocation service一个例子(从链接逐字复制):
{
"version": "1.1.0",
"host": "maps.google.com",
"home_mobile_country_code": 310,
"home_mobile_network_code": 410,
"radio_type": "gsm",
"carrier": "Vodafone",
"request_address": true,
"address_language": "en_GB",
"location": {
"latitude": 51.0,
"longitude": -0.1
},
"cell_towers": [
{
"cell_id": "42",
"location_area_code": 415,
"mobile_country_code": 310,
"mobile_network_code": 410,
"age": 0,
"signal_strength": -60,
"timing_advance": 5555
},
{
"cell_id": "88",
"location_area_code": 415,
"mobile_country_code": 310,
"mobile_network_code": 580,
"age": 0,
"signal_strength": -70,
"timing_advance": 7777
}
],
"wifi_towers": [
{
"mac_address": "01-23-45-67-89-ab",
"signal_strength": 8,
"age": 0
},
{
"mac_address": "01-23-45-67-89-ac",
"signal_strength": 4,
"age": 0
}
]
}
需要注意的是一些在示例中的信息甚至比更详细的我已经描述过。但是,您可能会想到有关位置的提示,即典型的现代手机提供的桌面计算机无法提供的位置。
从我个人的经验来看,基于Wi-Fi/Cell塔的地理位置并不像GPS那么精确,但可以相当不错。例如,在没有GPS芯片的基本型iPad上,我通常可以在仅基于Wi-Fi /蜂窝塔的50米范围内获得精度。在人口密度更高的Wi-Fi区域(例如城市),我想像的准确性会更好,并且会随着时间的推移而继续变得更好。
您的计算机是否碰巧内置了GPS设备/收音机? (您的电话确实) – 2012-02-20 06:16:01