【问题标题】:.getPath() google maps events reference to parent polygon.getPath() 谷歌地图事件引用到父多边形
【发布时间】:2015-10-05 15:53:42
【问题描述】:

我正在这样做,谷歌地图中的多边形有一些魔力。 问题是我正在观察每个多边形路径上的事件(用“set_at”和“insert_at”事件检测多边形节点上的变化) ,我在一个多边形数组上循环并创建这个事件(等等)

咖啡脚本

google.maps.event.addListener(polygon.getPath(), 'insert_at', (index) ->

每个多边形都有一个 id。但是在这个范围内我无法访问父元素,我需要保存更改的多边形中的更改...有没有办法从这个事件侦听器获取父多边形的 id?

【问题讨论】:

  • 对于 Javascript,您可以在创建新的多边形对象时创建一个 indexID,在您的事件监听器中,您可以获得每个多边形的 indexID,Javascript 答案:stackoverflow.com/a/15209277/4195406
  • 我通过将所有节点事件包装在一个多边形事件上解决了这个问题。我已经在每个多边形上都有一个索引属性,但是您无法访问节点事件上的多边形属性。方法是将polygon.getPath() 事件包装在绑定到循环中当前多边形的onClick 事件上。如您所见,绑定到 .getPath() 方法的事件导致事件的范围没有多边形及其属性。

标签: google-maps events google-maps-api-3 coffeescript polygons


【解决方案1】:

我假设polygonsArray 是你的多边形数组,所以你的循环应该是这样的......

    for (var u=0; u < polygonsArray.length; u++) {
        var polygonOptions = {
            fillColor: 'blue',
            strokeWeight: 1,
            name: "Any Name"
        };

        //  1\ Creat polygon
        var polygon = new google.maps.Polygon(polygonOptions);
        //  2\ Set polygon path
        var pathArr = polygonsArray['path'];
        polygon.setPaths(pathArr);

        //xxxxxxxxxxxxxxxxxxxxx MAGIC HERE xxxxxxxxxxxxxxxxxxxxxxxxxx
        //  2.5\ Give polygon index as a path object new attribute
        var path = polygon.getPath();
        path["parentIndex"] = u;
        //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

        //  3\ Add polygon to map
        polygon.setMap(map);

        //  4\ Add events to polygon
        //Listen to any modification occures to the path
         google.maps.event.addListener(polygon.getPath(), 'set_at', function() {
              console.log(this["parentIndex"]);
        });

        //Listen to new point inserted to the path
         google.maps.event.addListener(polygon.getPath(), 'insert_at', function() {
             console.log(this["parentIndex"]);
        });            



    }//End of loop

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-10
    • 2014-03-24
    • 2012-07-01
    • 1970-01-01
    • 2018-09-08
    • 2013-08-29
    • 2011-12-03
    相关资源
    最近更新 更多