Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript gmaps.js-绘制多边形_Javascript_Google Maps_Gmaps.js - Fatal编程技术网

Javascript gmaps.js-绘制多边形

Javascript gmaps.js-绘制多边形,javascript,google-maps,gmaps.js,Javascript,Google Maps,Gmaps.js,我正在使用gmaps.js,我可以用这段代码画多边形 var paths = []; function drawPoly(p1, p2) { paths.push([p1, p2]); console.log(paths); oldPolygon = null; map.drawPolygon({ paths: paths, strokeColor: '#432070', strokeOpacity: 1, strokeWeig

我正在使用gmaps.js,我可以用这段代码画多边形

var paths = [];
function drawPoly(p1, p2) {
  paths.push([p1, p2]);
  console.log(paths);

  oldPolygon = null;

  map.drawPolygon({
      paths: paths,
      strokeColor: '#432070',
      strokeOpacity: 1,
      strokeWeight: 3,
      fillColor: '#432070',
      fillOpacity: 0.6
    });
}
但我的问题是它们相互重叠导致了这一点


我的问题是如何删除重叠的多边形(旧多边形),以便剩余的多边形将是最后生成的多边形。我希望我解释得很好。谢谢。

如果您真的想使用多段线或多边形,您可以使用:

.setMap(Null)
你可以在这里找到更多关于这方面的信息:


但是我想你可能想使用可编辑多边形:

解决我的问题的方法是使用
映射。removePolygon
方法:

var paths = [];
var oldPolygon;
function drawPoly(p1, p2) {
    paths.push([p1, p2]);
    console.log(paths);

    polygons = map.drawPolygon({
       paths: paths,
       strokeColor: '#432070',
       strokeOpacity: 1,
       strokeWeight: 3,
       fillColor: '#432070',
       fillOpacity: 0.6
    });

    // remove old one if exists.
    if(oldPolygon != null){
        map.removePolygon(oldPolygon);
    }

    // ... and save a reference to the new polygon for next time around.
    oldPolygon = polygons;
}

对于每个正方形/矩形多边形,实际上添加了4个多边形(一个点、一条线、一个三角形和所需的多边形)。这是非常低效的,为什么不将完整路径传递到drawPolygon函数中呢?您当然可以通过删除或隐藏1、2和3点版本来“修复”您的问题,但是您的所有多边形都将有4个点吗?不,多边形将没有固定数量的点。之所以生成点、线和三角形,是因为我在gmap的“click”属性中调用函数drawPoly(p1、p2)。我可以问一下如何删除点、线和三角形吗?为什么不能将完整路径传递给
drawPolygon
函数?因为我不知道用户何时会停止添加点。是否只有一个多边形?也许你应该提供一个例子来说明你的问题。解决方法是什么?它是if条件。旧的多边形只需要删除,这样它们就不会相互重叠。谢谢鲍勃的编辑。