【问题标题】:remove polygon fillColor and strokeColor after zoom缩放后删除多边形填充颜色和描边颜色
【发布时间】:2013-02-21 04:34:12
【问题描述】:

当您缩放到某个多边形时,我想从地图中删除(fillColor,stokeColor)该多边形。

这里是示例: http://mini.hr/stanonline/test2.php

这是缩放到选定多边形的方法:

function kmlShowPlacemark(pm) {
  if(geoXmlDoc.placemarks[pm].polygon){
  map.fitBounds(geoXmlDoc.placemarks[pm].polygon.bounds);} 

谁能帮帮我?

【问题讨论】:

    标签: xml google-maps-api-3 kml polygons stroke


    【解决方案1】:

    geoXmlDoc.placemarks[pm].polygon 是一个Google Maps API v3 Polygon,要更改其属性,您可以使用更新的 fillColor 和 strokeColor 对其调用 setOptions 函数。您无法“移除”fillColor 和 strokeColor,但您可以更改它们并更改 fillOpacity 和 strokeWeight 以使它们不可见。

    Developers Guide description of Polygons

    这会将第一个多边形(第一个“地标”)更改为红色,蓝色边框为 5 像素宽:

    geoXmlDoc.placemarks[0].polygon.setOptions({
          fillColor:"#FF0000",    // red
          fillOpacity:0.9,
          strokeColor:"#0000FF",  // blue
          strokeWeight:5          // pixels
    });
    

    这将使同一个多边形完全透明(不透明度 0.001),没有边框:

    geoXmlDoc.placemarks[0].polygon.setOptions({
          fillColor:"#000000",
          fillOpacity:0.001,
          strokeColor:"#000000",
          strokeWeight:0
    });
    

    如果您想从地图中移除该多边形,请对其调用 setMap(null)。

    【讨论】:

    • tnx 很多,我喜欢这样:for (var i=0;i<geoXmlDoc.placemarks.length;i++) { var placemark = geoXmlDoc.placemarks[i]; if (i == pm) { if (placemark.polygon) placemark.polygon.setMap(null); } else { if (placemark.polygon) placemark.polygon.setMap(map); }
    猜你喜欢
    • 1970-01-01
    • 2013-04-20
    • 1970-01-01
    • 1970-01-01
    • 2021-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多