2016-10-09 29 views
0

緯度経度を並べ替える必要があります。緯度経度ソート

私は緯度/経度が10で、ルートを描いていますが、どちらが起源で、どこが目的地であるのかわかりません。私はそれらを並べ替えて経路を描きたいと思っています。

私のポイントは、このようなものです:

[{lat:23.015422, long:72.540037},{lat:23.020320, long:72.557889},{lat:23.006890, long:72.563468},{lat:23.020873,long: 72.534372}] 

どのような方法がありますか? Googleはこの機能を提供していますか?

+0

何でも試しましたか? – cody123

+0

いいえ、私は並べ替えの方法が混乱しています。ありがとうございます –

+0

あなたは何かのヒントを持っていますか? 1つのソーティングが他のソートよりも優れているとはどのように思いますか? –

答えて

0

実際にあなたが作成したいルートは、そのパスに従うポイントの正しい順序を表し、実際のルートと比較しない限り(あなたが持っているポイントのサブセットに一致するものを見つけようとしない限り)あなたがどちらが始点か終点かを決定できると思います。

つまり、アルバセテ、バルセロナ、カルタヘナのポイントがあれば、旅行者は3都市すべてを出発点としてそれらの都市を訪れることができます。

0

あなたはoriginDirections Requestを送ることで、必要なパラメータ)で与えられた座標のどちらを指定したくないので、あなたが使用できるオプションは、Polylinesに記載されているように、各緯度経度の位置を接続することです。

ポリラインオブジェクトは、LatLngの位置の配列で構成され、それらの位置を順序付けられた順序で接続する一連の線分を作成します。ここで

ドキュメントに示すようにポリラインを追加するためのサンプルコードです:

// This example creates a 2-pixel-wide red polyline showing the path of William 
// Kingsford Smith's first trans-Pacific flight between Oakland, CA, and 
// Brisbane, Australia. 

function initMap() { 
    var map = new google.maps.Map(document.getElementById('map'), { 
    zoom: 3, 
    center: {lat: 0, lng: -180}, 
    mapTypeId: 'terrain' 
    }); 

    var flightPlanCoordinates = [ 
    {lat: 37.772, lng: -122.214}, 
    {lat: 21.291, lng: -157.821}, 
    {lat: -18.142, lng: 178.431}, 
    {lat: -27.467, lng: 153.027} 
    ]; 
    var flightPath = new google.maps.Polyline({ 
    path: flightPlanCoordinates, 
    geodesic: true, 
    strokeColor: '#FF0000', 
    strokeOpacity: 1.0, 
    strokeWeight: 2 
    }); 

    flightPath.setMap(map); 
} 

すべて与えられた座標を接続できたら、あなたはまた、ポリラインの編集可能なを使用して形状を設定するオプションを有していてもよくドラッグ可能なプロパティはPolyline classです。

さらに詳しい実装方法については、関連コードSO postで提案されている解決策を参照することもできます。それが役に立てば幸い!