0

我有设备在全国各地移动,它们会向我报告他们的 GPS 位置。我想做的是有一个系统将这些坐标映射到一个命名区域。

我看到了两种方法:

  • 有一个数据库,将区域定义为在各种 GPS 坐标之间延伸的多边形。
  • 使用可以为我提供信息的某种形式的网络服务。

要么都会好的。它根本不需要非常准确,因为我只需要知道所涉及的地区,这样我就知道如果设备出现问题,我应该打电话给哪个地区办事处。

在第一种方法中,您将如何构建包含数据的 SQL 表?以及将 GPS 坐标与定义区域之一匹配的方法是什么?需要定义的区域不会很多,而且它们会很大,因此手动输入定义区域的值不会有问题。

在第二种方法的情况下,有没有人知道一种以编程方式按需将这些信息从网络上拉下来的方法?(在这种情况下,我可能会选择 Perl WWW::Mechanize)。“靠近Somecity”就足够了。

-

PS:这不是“为我做这项工作”之类的问题,而是更多的头脑风暴请求。伪代码很好。关于这个主题的一般理论也很好。

4

2 回答 2

1

在第一种方法中,您将如何构建包含数据的 SQL 表?以及将 GPS 坐标与定义区域之一匹配的方法是什么?

假设:一个区域被定义为一个封闭的多边形。
您只需调用多边形内的点方法即可匹配 GPS 坐标,例如

boolean isInside =  polygon.contains(latitude, longitude);

如果你的多边形很少,你可以对所有现有的多边形进行蛮力搜索。如果您有很多并且每个(一万)数千个点,您希望使用空间网格(如四叉树或 kd 树)来减少对相关多边形的搜索。

方法。

于 2013-03-03T00:16:16.840 回答
0

这个过程称为反向地理编码,许多服务提供商,如 google、yahoo 和 esri 提供的服务将允许执行此操作

他们将返回最近的兴趣点或地址,但您可以保留您感兴趣的行政级别

检查使用条款以查看哪些服务与您的预期用途兼容

于 2013-03-02T23:42:39.477 回答