Javascript gmaps.js-绘制多边形
我正在使用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
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条件。旧的多边形只需要删除,这样它们就不会相互重叠。谢谢鲍勃的编辑。