2016-05-31 7 views
-1

Googleマップv3 APIを使用して複数のウェイポイントのルートマップを作成するウェブアプリを構築しました。複数のウェイポイントを持つAPIマップからGoogleマップリンクを作成

jQuery.getJSON(driverURL, function(dData){ 
     var routeObject = {}; 
     var lat = dData.Location.lat; 
     var lng = dData.Location.lng; 
     routeObject.origin = new google.maps.LatLng(lat, lng); 
     routeObject.destination = new google.maps.LatLng(endRoute.lat, endRoute.lng); 
     routeObject.waypoints = waypoints; 
     routeObject.travelMode = google.maps.TravelMode.DRIVING; 
     routeObject.optimizeWaypoints = true; 
     directionsService.route(routeObject, function(response, status) { 
      if (status === google.maps.DirectionsStatus.OK) { 
       var directionsDisplay = new google.maps.DirectionsRenderer({ 
         polylineOptions: { 
          strokeColor: colors[driverLines.length] 
         } 
       }); 
       directionsDisplay.setMap(dMap); 
       directionsDisplay.setDirections(response); 
      } else { 
       window.alert('Directions request failed due to ' + status); 
      } 
     }); 
    }); 

私は地図、ウェイポイント、開始と終了がすべて保存されていますが、私は、Googleが、私がユーザーに送信できることを、このルートの方向にクリック可能なリンクをマップ生成できるようにしたいのですが。私は単一のマーカーでリンクを送信する方法を見つけることができますが、完全なルート方向で地図リンクを生成する方法を見つけることはできません。

助けてください。

+0

https://developers.google.com/maps/documentation/embed/guide#directions_mode – geocodezip

+0

これはまさに上記のコードの機能です。ウェイポイントを取得し、地図を表示し、地図上に方向を描画します。しかし、それらのドキュメントは私が尋ねた質問には答えません。それらのウェイポイントとルートを持つGoogleマップへのクリック可能なリンクを作成する方法。すべてのウェイポイントとルートを持つユーザーに送信できるmaps.google.comリンクの場合と同じです。 – Davidgs

+0

「googleマップ」を作成するための唯一の文書化された方法は、埋め込みAPIによるものです。 – geocodezip

答えて

0

私はこれを考え出しました。実際には思ったよりも簡単でしたが、やっていました。

最初に、アドレスとして緯度/経度ではなく、maps.google.comにルートマップを作成しました。次に、そのマップのURLがどのように構築されたかを調べました。非常に簡単に再作成できます。

URLはアドレス、都市、州、住所、都市、州、郵便番号、住所、都市、州、郵便番号、出発地、経由地、終了地点に緯度/経度座標を使用している場合は、V3 APIを使用して地理座標を設定し、返された結果から住所情報を抽出してURLに挿入する必要があります。

ここでは、開始点、一連のウェイポイント、終了地点を持つ最終リンクを作成しました。私はそれにすべてのアドレス情報を持っているデータと呼ばれるJSONオブジェクトで始まり、そこから長い文字列を構築し、形式でGoogleマップが期待する:

var dirs = '' 
for(var x = 0; x<Data.length;x++){ 
    dirs += Data[x].Address + "," + Data[x].City + "," + Data[x].State + "," + Data[x].Zip + "/"; 
} 

をその後、私はに開始と終了の場所を追加しますそれ:

var dirLink = 'http://maps.google.com/maps/dir/'; 
dirLink += start.Address + "," + start.City + "," + start.State + "," + start.Zip + "/" + dirs + end.Address + "," + end.City + "," + end.State + "," + end.Zip; 

そしてdirLinkはend.Addressに、すべてのウェイポイントを経由start.Addressからの指示を与える完全なリンクになります。

関連する問題