繁体   English   中英

如何让用户使用gmap3插件或Google Maps Api v3绘制多个多边形

[英]How can I let user draw multiple polygons using gmap3 plugin or Google Maps Api v3

我对JavaScript和Google Maps Api没有太多的经验。 我要实现的目标:我有一张地图,用户可以在其中放置标记或绘制多边形。 我正在使用gmap3插件,并且设法完成了标记所需的所有操作(例如添加,编辑,拖动,删除等),但是多边形存在问题。 这是基本代码:

    $('#map-mappoints').gmap3(
    {
        action:'init',
        options:{
            zoom: 7
        }
        ,
        events: {
            click: function(event, data) {
                if($(".map #poly").hasClass('active')){
                    placePoly(data.latLng);
                } else {
                    placeMarker(data.latLng);
                }
            }
        }
    },
    {
        action:"autofit"
    }
    );


    function placePoly(location) {
        $('#map-mappoints').gmap3({ 
            action: 'addPolygon',
            options:{
                strokeColor: "#FF0000",
                strokeOpacity: 0.8,
                strokeWeight: 2,
                fillColor: "#FF0000",
                fillOpacity: 0.35
            },
            callback: function(polygon){
                var path = polygon.getPath();
                path.push(location);
                console.log(path);
            }
        }
        )
    } 

我可以在控制台中看到它创建了poly,但是它只添加了一个path元素,这是在每次单击地图后触发的逻辑,但是我不知道如何使它继续向多边形添加新元素,然后让用户停止(可能通过工具栏中的某个按钮),然后在单击“新多边形”后创建新的。

谢谢您的提示。

ps。 英语不是我的母语,所以对于任何错误,我们深表歉意,我尽力避免出现这种情况;)

阅读标题gmap3的参数下方的内容

http://gmap3.net/documentation.html

对于它的主要用途,gmap3将对象作为参数。 每个对象都是要执行的动作。 这些动作将按其在参数列表中的顺序执行,并且每次完成前一个动作时都会执行。 此示例首先初始化google地图,然后添加两个标记

路径

指定闭环的坐标的有序序列。 与折线不同,多边形可能包含一个或多个路径。 结果,paths属性可以指定一个或多个LatLng坐标数组。 可以使用LatLng的单个数组定义简单的多边形。 更复杂的多边形可以指定一个数组数组。 任何简单的数组都可以转换为MVCArrays。 从MVCArray插入或删除LatLng会自动更新地图上的多边形。

MVCArray是一个可变数组,因此您可以向该数组添加更多经纬度坐标,并且多边形将自动更新。

希望这可以帮助你!

格里茨

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM