我需要允许用户绘制具有指定道路半径的路线(使用折线)(在视觉上,它是通过“重量”参数完成的)。

看起来像这样:

routes - 如何在Leaflet中将具有权重的折线转换为多边形?-LMLPHP

因此,我想知道如何在此折线周围建立具有一定偏移量的多边形?像这样:

routes - 如何在Leaflet中将具有权重的折线转换为多边形?-LMLPHP

最佳答案

最后,我使用JSTS库(https://www.npmjs.com/package/jsts)做到了。

这很简单:

//pathCoords should be an array of jsts.geom.Coordinate
var pathCoords = [];
var geometryFactory = new jsts.geom.GeometryFactory();

// on what distance new polygon should be built
var distance = (meters * 0.0001) / 111.12;
var shell = geometryFactory.createLineString(pathCoords);

// building a new polygon
var polygon = shell.buffer(distance);

// finally get your new polygon coordinates
var polygonCoords = polygon.getCoordinates();

关于routes - 如何在Leaflet中将具有权重的折线转换为多边形?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36132689/

10-13 02:48