0

我正在运行一个约会网站,或者更好地说,尝试。我希望
在国家覆盖范围方面尽可能通用。

由于它是一个面向本地约会的网站,我必须跟踪城市
等等,所以我遇到了一些问题:

  1. 我需要有关城市的信息,人们可以加入
    (一个我一无所知的国家,我真的无法决定一个城市
    或任何东西)

  2. 当来自不同国家的人加入时,他们希望看到
    附近的人。您将如何处理此类或问题?

这似乎是两个简单的点,但这些
天它们确实给我带来了一些麻烦。** 尝试将它们视为与数据库相关的问题 **

我在 SE 周围转了一圈,发现这是最好的提问点,而不是任何其他
SE 网站。

非常感谢你

4

2 回答 2

2

美国城市的全名是 {country_name, state_name, city_name}。我说假设在全球范围内,我所说的 state_name 不是唯一的。我可以很容易地想象一个拉丁美洲国家的某个地区被命名为“内华达州”或“科罗拉多州”。

你还有拼写的问题。一个住在德国的美国人可能会说她住在德国北莱茵-威斯特法伦州的科隆。住在那里的德国人会称它为“科隆”。

“附近”是一个更难破解的坚果。我以前住在一个大城市。在州际高速公路上开车一个小时来接我的约会并不罕见。我认为那是“附近”。现在我住在一个小城市。现在 30 分钟似乎是很长的车程,但可能只有 15 或 20 英里,而不是 65 或 70 英里。

如果你住在边境城镇,15 英里可能在另一个国家。也许是两个不同的国家。

我认为您最好的选择是使用地理定位 API 或服务在插入新城市时获取它们的纬度和经度。给定两个点的距离计算很简单,但除非使用边界框,否则会导致查询性能不佳。(您不想计算到德克萨斯州每个城市的距离以找到“靠近”韦科的人。)

于 2011-04-14T16:06:05.047 回答
1

获取所有城市的纬度/经度。不要担心确切的距离。

玩 excel 并找到给定距离(10 英里、25 英里、50 英里)的纬度和/或经度(Δlat 或 Δlong)的最大变化,然后当您搜索其他人时,只需在数据库中搜索(Firstuser'sLongitude +/- Δlong)和在(Firstuser'sLatitude +/-Δlong)内。

我认为人们不会介意 10 英里和 10*2^0.5 英里之间的区别。

于 2011-06-01T17:26:39.707 回答