我想将世界地图划分为地区。
我的区域数据采用国家/地区名称,州名,县和邮政编码的形式。
我计划使用Google Maps API,除非有更好的工具。
如何定义这些区域?我使用叠加层吗?我可以将不同的地理数据合并到叠加层中吗?
一旦我定义了这些区域,我该如何获取位置并检查它所在的区域?
到目前为止,我只收集了定义地区的数据并研究了#34;销售区域地图"和在线定制地图。
答案 0 :(得分:1)
GoogleMaps本身就是一个片段。您可以在地图片段中包含“形状”叠加层。
我正在就如何定义领土提出一些想法。
1)使用Bbox(边界框) - 这是一个立方体。您可以定义此多维数据集的元中心。您提供对角线长度。您创建一个函数来创建Bbox多维数据集。每次将点数与Bbox的元中心(X,Y,Z)进行比较。如果你的点数大于所有最低的X1,Y1,Z1并且小于所有最高的X2,Y2,Z2那么你就在那个区域内。这里,(X1,Y1,Z1)是您领土Bbox最低角的地理坐标,(X1,Y1,Z1)是您所在地区最高角的地理坐标 bobox 。
USGS使用这个概念来定义领土。这是链接:
https://earthquake.usgs.gov/earthquakes/feed/v1.0/geojson.php
2)既然你已经说过,你的领土是基于国家,城市名称。在你的场景中BBOX似乎不起作用。因此,您必须定义自己的自定义区域。您可以使用反向地理编码器API来获取一组地理坐标。然后,使用这些Geo坐标集,使用Polygon绘制Shapes。下面介绍如何绘制自定义形状(自定义区域)。
https://developers.google.com/maps/documentation/javascript/shapes#polylines
在绘制自定义区域(区域)后,您现在仍然要检查标记(位置)是否属于该区域? Ans:找到两个在两个地理坐标之间绘制直线的点。例如,如果使用10个地理坐标绘制Shape,则可以使用一对地理坐标{(坐标1,坐标6),(坐标2,坐标7),(坐标3,坐标8),(坐标4,坐标9),(坐标5,坐标10)。现在,您将这对坐标放在ArrayList中。要知道,如果您的点在该区域内,则必须迭代地比较您的点是否在ArrayList中的那对坐标内。为了获得更好的准确性,您必须使用许多地理坐标来绘制您的区域。这就是方法。