我已经设置了一些多边形,把它们画在地图上就好了.我还设法在点击它们时触发console.log.但是,我将如何继续找出实际点击的多边形?
正如您在我的示例代码中所看到的,我将每个对象存储在集合"lots"中,但是 - 单击它们只会给我一点点跟踪.我想我可能需要遍历我的多边形并检查点击点是否与它们相交,从而找出它是哪个多边形...是否有更简单的解决方案?
var lot = new google.maps.Polygon({
    paths: me.area,
    strokeColor: 'black',
    strokeOpacity: 0.35,
    strokeWeight: 1,
    fillColor: fillcol,
    fillOpacity: 0.35
});
lot.setMap(map);
var obj = {
    'id':me.id,
    'rented':me.rented,
    'area':lot
};
google.maps.event.addListener(lot, 'click', function(event) {
    console.log(event);
});
lots.push(lot);
Run Code Online (Sandbox Code Playgroud)
    dmi*_*try 13
为什么在创建它们时不为每个多边形分配一些id属性,以后再使用this.myID?实际上,您可以在该多边形对象上挂起所需的所有信息.
var lot = new google.maps.Polygon({
        paths: me.area,
        strokeColor: 'black',
        strokeOpacity: 0.35,
        strokeWeight: 1,
        fillColor: fillcol,
        fillOpacity: 0.35
    });
    lot.setMap(map);
    var obj = {
        'id':me.id,
        'rented':me.rented,
        'area':lot
    };
    lot.objInfo = obj;
    google.maps.event.addListener(lot, 'click', function(event) {
        console.log(this.objInfo);
    });
    lots.push(lot);
Run Code Online (Sandbox Code Playgroud)
它会比循环中的路径比较更有效,或者我错过了什么?:)
如果我可以使用不同的解决方案稍晚一点,我遇到了同样的问题并发现您可以在多边形上定义自定义属性.
我的例子(在美国地图上创建一个州)
poly = new google.maps.Polygon({
    map_state_id: map_state_id,
    paths: pts,
    fillColor: colour,
    fillOpacity: 0.66,
    strokeWeight: 1,
    clickable:true
    });
Run Code Online (Sandbox Code Playgroud)
在这种情况下,"map_state_id"是自定义属性.我已将其定义为州的ID(阿拉巴马州为1,阿拉斯加州为2,等)
然后,当稍后单击特定状态时,可以将此"map_state_id"传递到事件函数中.
google.maps.event.addListener(poly, 'click', function() 
    {
    var map_state_id = this.map_state_id; //retrieve correct state_id
    $.ajax(
        {
        type: "POST",
        url: "http://www...get_state_info.php",
        data: {state_id : map_state_id},
        dataType: "html",
        success: function(data)
            {
            $("#state_info").html(data); //display some info
            }                       
        });
    });
Run Code Online (Sandbox Code Playgroud)
我在http://dominoc925.blogspot.com/2011/12/add-your-own-property-field-to-google.html找到了这个特殊的概念.
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           14586 次  |  
        
|   最近记录:  |