在上面显示的Google地图中,有两个标记为绿色箭头。它们是由虚线的蓝色圆圈表示的2个不同区域的中心。橙色箭头指向的标记位于上述区域之一。
这会带来一个问题。
假设数据库中有一个很长的区域中心位置列表,并且所有区域都具有相同的固定半径。 如何实施计算,以便系统可以告诉我Google地图上的任意位置是否位于至少一个区域内?:使用for
遍历区域列表 - 循环或while
- 源代码中的循环不是一个选项,因为性能是我的应用程序中的第一优先。
是否存在提供此类功能的现有Google Map API或库?
如果重要的话,我将使用Ionic作为客户端,使用.NET C#作为服务器。
答案 0 :(得分:3)
您可以使用Google Maps Geometry Library。
如果区域是圆形,您可以计算距离中心的距离,例如参见SO: How to detect if a point is in a Circle?
如果区域是多边形,请参阅此示例:https://developers.google.com/maps/documentation/javascript/examples/poly-containsLocation