Google 地图形状 - 如何防止重叠

Bru*_*noG 5 google-maps google-maps-api-3

我正在尝试实现一个地图,让用户在其上绘制一些形状(圆形、矩形和多边形),并且该部分现在正在工作。

问题是用户可以在另一个(重叠)上绘制一个形状,而系统不应该允许这样做。相同的地理区域不应被多个形状覆盖......当用户尝试这样做时,他们应该收到警告/信息消息的通知。

我已经搜索了很多,但我没有在任何地方找到一个工作示例,也没有找到如何做到这一点的线索。

你们能提供任何帮助 - 甚至有可能吗?

谢谢!

all*_*kim 2

正如您可能已经从https://developers.google.com/maps/documentation/javascript/drawing#drawing_events了解到的,有回调绘图事件。

绘制完成后,您需要确定新形状是否与已保存的现有形状发生碰撞。

    google.maps.event.addListener(
        drawingManager, 
        'overlaycomplete',   
        function(event) {
            // calculate event.overlay is overlapped to another, which is saved. 
            // This part is difficult
            var overlapped = true
            if (overlapped) {
                event.overlay.setMap(null);
                delete event.overlay;
            } else {
                ZONES.overlays.push(event.overlay); // assuming ZONE.overlays are defined
            }
        }
    );
Run Code Online (Sandbox Code Playgroud)

无法告诉您有关碰撞检测的所有信息。不过你可以用谷歌搜索“2D 碰撞检测”。这都是关于数学的。