【发布时间】:2016-03-29 11:22:42
【问题描述】:
我已经使用ipinfo (不需要用户的授权) 或等效的来获取用户的位置信息,用于从openWeatherMap 获取天气信息。问题是使用 ip-address 进行本地化可能不精确,因为它取决于用户互联网接入点(ISP,...)。例如,将喀麦隆视为国家,如果我的 Internet 连接由位于 Yaoundé 的服务器提供,而我位于 Dschang;像 ipinfo 这样的常见 ip 本地化 API,将给我 Yaoundé 作为我的城市位置。也就是说,如果服务器位于不同的国家/地区,我们将得到相同的结果。
以同样的顺序,HTML5-geolocalization API(需要用户的自动化) 似乎是一个很好的方法,考虑到它可以更精确的事实(有时精度为 100m)。但是,该精度取决于考虑 API 函数的参数设置和浏览器配置;来自html5doctor.com 的这篇文章对此进行了一些说明。我的问题是,我也没有得到预期的结果;考虑到前面的示例,我得到 Douala(ISP 位置)而不是 Dschang。
那么如何使用这些方法获得更好的精确结果,或者是否有其他方法可以获取用户的精确位置?
【问题讨论】:
-
我也知道 HTML5-geolocalization 方法,但它似乎也不精确(我没有得到预期的结果),但它似乎比 ip-address 本地化方法更精确.这两种方法是唯一可用的方法吗? (也许是我使用它们的方式,但我认为不是)。
-
没有魔法。 openWeatherMap 站点有一个输入框,用于输入您的城市名称。然后它将信息存储在名为“cityid”的 cookie 中。下次您访问他们的网站时,它会自动显示该城市 ID 的信息。
-
@Roberto,有趣的是,我只是通过删除考虑 cookie 来尝试它,你是对的。那么没有比之前列举的更好的方法了吗?
标签: javascript html api localization openweathermap