动态处理地理位置

时间:2010-12-30 19:22:51

标签: geolocation gis

我建立了一个度假租赁和住房租赁网站。我创建了一个页面,用户可以自己添加位置(最多6级)但我遇到了一个问题。用户可以添加位置,即:

北美 - >美国 - >加利福尼亚 - >旧金山

另一个用户可能会到达并添加他认为属于SF(比如Silver Terrace)的SF区域。 另一个用户可以添加相同的区域,但他不会在SF下看,并且会添加为SF的兄弟节点

北美 - >美国 - >加利福尼亚 - >银色露台

所以现在我们有:

北美 - >美国 - >加利福尼亚 - >旧金山 - >银色露台
北美 - >美国 - >加利福尼亚 - >银色露台

当然是重复的= /我可以告诉用户第二次添加Silver Terrace它已经存在但是第一个用户可能放错了导致问题。

即使我不允许用户添加位置,我自己也会这样做或将其限制为少数用户,但要正确添加所有位置仍然非常困难。

在其他国家,还有一个问题,即包括或不包括州/区/地区等,以便成为地点之路的一部分......

我已经阅读了很多关于此的帖子,但我无法解决好的解决方案。

很难完全消除位置,因为我将它们用于子域,即。 san-francisco.example.com或california.example.com。如果用户不想(或不能)使用地图,则位置还允许用户按国家/州/城市/地区/邻居/等进行浏览。

我认为没有一个完美的答案,但如果你有一些建议,请告诉我。非常感谢你。

2 个答案:

答案 0 :(得分:2)

您可以使用另一种方法来自动添加用户输入很少的子域,这是一种统计方法。 (这种方法假设您最初没有关于位置的信息)

作为一个激励性的例子,假设您的系统中有20,000个用户,其中10,000个用户放置在一个位置(以x - >(y - >)* z的形式)以“United”开头国家 - >加州“

因为“美国 - >加利福尼亚”是在如此众多的地方找到的元素,所以您可以确信“美国 - >加利福尼亚”实际上是一个有效的位置。添加子域时这种方法很有意义,因为在您的大部分人口成为该子域的成员之前,您可能不想添加子域。

答案 1 :(得分:1)

在X-> Y-> Z路径上附加一个隐藏值,表示Z的邮政编码。这可能是确定哪些路径重复的最简单方法。