2

方向サービスの結果から取得したエンコードされたポリラインのセットがあり、それらをphp配列に保存しました。

以下のコードでは、1 つのポリラインを追加できます。複数のポリラインを同時に追加するにはどうすればよいですか?

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);
4

1 に答える 1

1

すべてのポリラインに同じスタイルを適用したいですか、それともポリラインごとに異なるスタイルが必要ですか? 今のところ、それらが同じであると仮定しましょう。それらを変更する必要がある場合はお知らせください。コードを調整できます。

まず、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 );
}
于 2013-03-24T18:13:29.170 に答える