有人可以向我解释为什么当我允许HTML5地理位置演示使用我的位置时它总会返回纽约,但是,当我打开手机时它会显示我的确切位置?我试图在我的网站上实现“当前位置”功能,但我不知道是否可能。
谢谢
答案 0 :(得分:3)
答案 1 :(得分:1)
您的手机可以使用许多其他信息,这些信息可用于比典型的有线桌面更准确地确定您的位置。值得注意的是:
一般来说,GPS可用时可能会提供最高的准确度。通过清晰的天空视野,大多数手机可以使用GPS在5米或更短的范围内对您进行地理定位。
Google / Apple等公司的信息与地理位置的已知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区域(例如在城市),我认为准确性更好,并且随着时间的推移会越来越好。