使用API v3绘制多个编码折线

draw multiple encoded polylines using api v3

本文关键字:编码 折线 绘制 API v3 使用      更新时间:2023-09-26

我有一组编码的折线,从方向服务的结果中检索,并且我已经将它们存储在php数组中。

使用下面的代码,我可以添加一条折线。如何修改它以同时添加多个折线?
var code = '_mjsB{qp{LvAe@xImCjGgBf@St@Qf@Un@e@Hm@Pc@VW^MhAc@`B{@lAw@zCyA`@KvEyB`Ao@PQNK';
var paths = google.maps.geometry.encoding.decodePath(code);
var flightPath = new google.maps.Polyline({
  path:pathss,
  strokeColor: "#0000FF",
  strokeOpacity: 1.0,
  strokeWeight: 2
}); flightPath.setMap(map);

您希望所有折线都具有相同的样式,还是需要不同折线的不同样式?现在我们假设它们是一样的;如果它们需要不同,请告诉我,我们可以调整代码。

因此,首先,编写PHP代码以生成编码路径的JavaScript数组。我让你整理这部分。

然后,用JavaScript编写一个简单的循环来解码每个路径并将其添加到映射中:

// These are the encoded paths generated from PHP
var encodedFlightPaths = [
    '...first-path...',
    '...second-path...',
    '...third-path...'
];
addEncodedPaths( encodedFlightPaths );
function addEncodedPaths( encodedPaths ) {
    for( var i = 0, n = encodedPaths.length;  i < n;  i++ ) {
        addEncodedPath( encodedPaths[i] );
    }
}
function addEncodedPath( encodedPath ) {
    var path = google.maps.geometry.encoding.decodePath( encodedPath );
    var polyline = new google.maps.Polyline({
        path: path,
        strokeColor: "#0000FF",
        strokeOpacity: 1.0,
        strokeWeight: 2
    });
    polyline.setMap( map );
}