我必须将所有注册到我的网站的用户分组到都会区。都会区被定义为靠近世界上 100 个人口最多的城市之一。
在我提出的解决方案中,用户将看到 2 个下拉菜单。一种用于国家,一种用于城市。这似乎是最好的用户体验。我也在考虑使用 html5 浏览器位置 API 来预先选择下拉列表中的一些位置。
以前有没有人做过类似的事情,你是如何处理的?
子问题:你将如何存储这些数据
我必须将所有注册到我的网站的用户分组到都会区。都会区被定义为靠近世界上 100 个人口最多的城市之一。
在我提出的解决方案中,用户将看到 2 个下拉菜单。一种用于国家,一种用于城市。这似乎是最好的用户体验。我也在考虑使用 html5 浏览器位置 API 来预先选择下拉列表中的一些位置。
以前有没有人做过类似的事情,你是如何处理的?
子问题:你将如何存储这些数据
ip-geolocation 通常不是非常精确。
我会强制用户输入国家、城市和邮编。
并使用来自浏览器位置 api 的数据预先填写表单。
在数据库中,我将存储国家、城市、邮编和纬度。
使用 google geocoder api 可以很容易地通过 lat long 和 backword 查找匹配的城市 + zip。 https://developers.google.com/maps/documentation/geocoding/
那么您只需要大城市的经纬度值即可进行区域搜索。Easyes 是在方形而不是圆形中搜索。但是如果你真的需要一个 cirty,你必须使用一个具有 gis 功能的数据库。http://postgis.refractions.net/
我不会使用地理位置。它在所有浏览器中的工作方式并不总是相同的,并且在每种情况下并不总是可靠的。
我做了类似的事情,我使用了区号。一些大都市区有重叠的区号,但如果您使用都市区的主要区号,您可以找到一个很好的方法来解决这个问题。有些州只有几个主要的区号....有些要高得多,但您知道区号越多,该地区的人口就越多(通常)。附加到都会区的更多区号可用作确定人口稠密城市的另一个因素。
大多数用户可能不想提供城市或邮政编码,但会在注册时提供区号。您可以将区号分配给各州,也可以将区号分配给都会区。
如果您决定以这种方式将其作为额外价值来处理,这张地图应该会有所帮助 http://www.nanpa.com/area_code_maps/ac_map_static.html