我有设备在整个国家/地区移动,向我报告他们的GPS位置。我想要做的是有一个系统将这些坐标映射到命名区域。
我看到两种方法:
要么没事。它根本不需要非常准确,因为我只需要知道所涉及的区域,以便我知道如果设备出现错误,应拨打哪个区域办事处。
在第一种方法中,您将如何构建包含数据的SQL表?您将GPS坐标与其中一个定义区域匹配的方法是什么?没有很多区域可以定义,而且它们非常大,因此手动输入定义区域的值不会有问题。
对于第二种方法,是否有人知道以编程方式从网络上按需提取此信息的方式? (在这种情况下,我可能会选择Perl WWW :: Mechanize)。 “接近Somecity”就够了。
-
PS:这不是“为我做的工作”这样的问题,而是更多的头脑风暴要求。伪代码很好。关于这个问题的一般理论也很好。答案 0 :(得分:1)
在第一种方法中,您将如何构建包含的SQL表 数据?那么匹配GPS的方法是什么? 坐标到一个定义的区域?
Asume:区域被定义为闭合多边形 只需调用多边形方法中的点,即匹配GPS坐标,如
boolean isInside = polygon.contains(latitude, longitude);
如果您的多边形很少,则可以对所有现有多边形进行强力搜索。 如果你有很多点和每个(十万)点,你想要使用空间网格,如四叉树或k-d树,以减少对相关多边形的搜索。
方法
答案 1 :(得分:0)
此过程称为反向地理编码,许多服务提供商(如google,yahoo和esri)都提供允许执行此操作的服务
他们将返回最近的兴趣点或地址,但您可以保留您感兴趣的管理级别
检查使用条款,了解哪种服务与您的预期用途兼容