我想在折线周围绘制一个多边形.在我的情况下,折线是Google地图方向,我需要在Google地图画布中围绕它展示多边形.
第一:
对于抵消,我使用JavaScript Clipper Library.我有以下折线(路线):我使用Clipper在下面创建一个偏移多边形:
我有一个有效的JS Bin示例.
代码是:
<html>
<head>
<title>Javascript Clipper Library / Offset polyline</title>
<script src="clipper.js"></script>
<script>
function draw() {
var polygons = [[{"X":72,"Y":59.45},{"X":136,"Y":66},{"X":170,"Y":99},{"X":171,"Y":114},{"X":183,"Y":125},{"X":218,"Y":144},{"X":218,"Y":165},{"X":226,"Y":193},{"X":254,"Y":195},{"X":283,"Y":195},{"X":292,"Y":202},{"X":325,"Y":213},{"X":341,"Y":234},{"X":397,"Y":245},{"X":417,"Y":248}]];
var scale = 100;
reverse_copy(polygons);
polygons = scaleup(polygons, scale);
var cpr = new ClipperLib.Clipper();
var delta = 25;
var joinType = ClipperLib.JoinType.jtRound;
var miterLimit = 2;
var AutoFix = true;
var svg, offsetted_polygon,
cont = document.getElementById('svgcontainer');
offsetted_polygon = cpr.OffsetPolygons(polygons, delta * scale, joinType, miterLimit, AutoFix);
//console.log(JSON.stringify(offsetted_polygon));
// Draw red offset polygon
svg …Run Code Online (Sandbox Code Playgroud) 我正在开展一个项目,我需要在Google地图上显示两个多边形的交叉区域.我已经浏览了地图API文档.它确实提到了交叉多边形,但没有解释任何示例或方法.谁能帮我吗?
我正在尝试使用Google Maps API V3多边形实现多边形自相交算法.
目标只是检测是或否,用户绘制的简单多边形是自交叉.
我发现这个非常有趣的链接,但它假设多边形顶点的坐标是以geoJSON格式给出的.但是,这不是我的情况; 我只能够检索多边形坐标使用polygon.getPath()到polygoncomplete的事件.
这是我检索坐标的方式:
google.maps.event.addDomListener(drawingManager, 'polygoncomplete', function(polygon)
{
var polygonBounds = polygon.getPath();
var coordinates = [];
for(var i = 0 ; i < polygonBounds.length ; i++)
{
vertice = {
"Latitude" : polygonBounds.getAt(i).lat(),
"Longitude" : polygonBounds.getAt(i).lng()
}
coordinates.push(vertice );
}
}
Run Code Online (Sandbox Code Playgroud)
如何将这些坐标转换polygon.getpath()为geoJSON格式?
有没有更好的方法来检测Google地图多边形是否自相交?如果是这样,请您分享一些代码示例,而不仅仅是数学解释?
PS:我看过这个链接,但没有任何代码示例,我有点迷失.
javascript polygon shapes google-maps-api-3 self-intersection