基本上,我想在页面上向人们显示本地事件。因此,如果您来自加利福尼亚,您将拥有与佛罗里达人不同的东西。我将在项目的其余部分使用 php,所以 php 是必须的。
我宁愿获取数据而不必向用户询问其他信息。如果我必须询问其他信息,我会想使用邮政编码,而不是使用他们的 ip 将该邮政编码保存到数据库中,这样我就不必再询问了。
我想GEO IP 功能可以让你到达那里的 90%,如果不是全部的话。
你怎么知道这个人的位置?
例如,您不能通过 ISP,因为他们的 ISP 地址可能与用户处于不同的状态。
如果他们必须登录,那么您可以知道他们登录时的位置,但如果他们正在旅行并因此留在其他地方,那么您的信息是错误的。
那将是第一个挑战。
根据您尝试获得的细粒度将确定您的数据库的外观。例如,当我走在街上时,如果我使用移动设备,您能否使用我的 GPS 数据来确定我附近的无麸质餐厅?还是基于城市或大都市区?
您是否使用 GPS 数据?
您将如何获取本地事件来更新您的应用程序?
有很多信息没有得到答复,才能真正给你一个好的答案。
您是否试图猜测访问者的位置?如果这是您想要的,请参阅PHP GeoIP 扩展或MaxMind GeoIP api。他们都使用相同的数据库,并提供免费和付费数据库。
这种方法的一个问题是 IP 地址不能保证准确的位置。不过,这通常是一个很好的起点。您应该使访问者更容易更正他们的位置。
一种可能更准确的方法是使用 HTML5 地理定位 API,但这是实验性的,仅在最新的浏览器中支持。即使有浏览器支持,站点访问者也需要能够找到其位置的硬件或允许他们设置自己的位置的插件。如果你走这条路,你应该有一个基于 GeoIP 结果的回退。
您可以像其他人提到的那样在地理定位数据库中查找他们的 IP 地址,正如每个人都指出的那样,这不是万无一失的,但它应该在大多数情况下都可以工作。
你也可以看看使用 Firefox 的位置感知浏览,这也不是万无一失的——但当我使用它时,它确实可以准确地定位我的房子。当然,这只适用于 Firefox 3.0+ 用户,并且只有在他们点击“接受”按钮之后,所以这显然不是没有问题的。
无论您选择哪种方式,只要确保某处有覆盖即可!你的方法可能在 99% 的时间里都有效,但如果我是那 1% 的人,他们从来没有得到正确的信息,那真的很烦人!