2014-12-22 54 views
2

我想從谷歌地圖獲取所有的緯度和經度。如何獲得從源地到目的地的所有緯度和經度

例如:假設我有輸入lat和源和目標,並且路徑的LON被繪製在地圖如下上:

enter image description here

所以現在我希望所有此A之間的緯度和經度源和B目的地。並且所有經緯度都必須存儲在數據庫中。

所以,當我跟蹤我的車,那車不動這條道路上/道路,然後在它會火象我發送電子郵件等

我與asp.net C#開發一些行動。

所以我怎麼能得到所有的拉特和lon?

我使用下面的腳本

<script> 
     function initialize() { 
      var map = new google.maps.Map(document.getElementById('map_canvas'), { 
       zoom: 8, 
       center: new google.maps.LatLng(22.304634, 73.161070), 
       mapTypeId: google.maps.MapTypeId.ROADMAP 
      }), 
     directions = new google.maps.DirectionsService(), 
     displayer = new google.maps.DirectionsRenderer({ 
      draggable: true 
     }); 

      displayer.setMap(map); 
      directions.route({ 
       origin: new google.maps.LatLng(22.304634, 73.161070), 
       destination: new google.maps.LatLng(23.022242, 72.548844), 
       travelMode: google.maps.DirectionsTravelMode.DRIVING 
      }, function (result) { 
       displayer.setDirections(result); 
      }); 
     } 
     google.maps.event.addDomListener(window, 'load', initialize); 
     google.maps.event.addListener(displayer, 'directions_changed', some_method); 
    </script> 
+0

你與'谷歌地圖API'諮詢? – MethodMan

+0

是的,我通過API,但我沒有找到解決方案。 – deepak

+0

你認爲「全部」是什麼?任何兩個地點之間都有無數的點數。 –

回答

4

你必須遍歷所有的google.maps.DirectionsRoute對象的overview_path財產。然後創建你的對象(或只是序列化overview_path)將其發送到服務器並將其存儲在數據庫中。

赤了這個例子overview_path如何循環的:

<!DOCTYPE html> 
<html> 
    <head> 
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no"> 
    <meta charset="utf-8"> 
    <title>Geocoding service</title> 
    <style> 
     html, body, #map-canvas { height: 100%; min-height: 600px; min-width: 700px; margin: 0px; padding: 0px } 
     #map-canvas { height: 50%; } 
     #panel { position: absolute; top: 5px; left: 50%; margin-left: -180px; z-index: 5; background-color: #fff; padding: 5px; border: 1px solid #999; } 
    </style> 
    <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script> 
</head> 
<body> 
    <div id="panel"> 
     <label>Origin 
      <input id="origin" type="text" value=""> 
     </label> 
     <label>Destination 
      <input id="destination" type="text" value=""> 
     </label> 
     <input type="button" value="GetDirections" onclick="calcRoute()"> 
    </div> 
    <div id="map-canvas"></div> 
    <div id="vertex-container"> 
     <label>Points</label> 
     <ul id="vertex"> 
     </ul> 
    </div> 
    <script type="text/javascript"> 
     var directionsDisplay; 
     var directionsService = new google.maps.DirectionsService(); 
     var map; 

     function initialize() { 
      directionsDisplay = new google.maps.DirectionsRenderer(); 

      var mapOptions = { 
       zoom: 7, 
       center: new google.maps.LatLng(48.85727000, 2.35238) 
      }; 
      map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions); 
      directionsDisplay.setMap(map); 
     } 

     function calcRoute() { 
      var start = document.getElementById('origin').value; 
      var end = document.getElementById('destination').value; 
      var request = { 
       origin: start, 
       destination: end, 
       travelMode: google.maps.TravelMode.DRIVING 
      }; 
      directionsService.route(request, function (response, status) { 
       if (status == google.maps.DirectionsStatus.OK) { 
        directionsDisplay.setDirections(response); 
        if (response.routes && response.routes.length > 0) { 
         var routes = response.routes; 
         for (var j = 0; j < routes.length; j++) { 
          var points = routes[j].overview_path; 
          var ul = document.getElementById("vertex"); 
          for (var i = 0; i < points.length; i++) { 
           var li = document.createElement('li'); 
           li.innerHTML = getLiText(points[i]); 
           ul.appendChild(li); 
          } 
         } 
        } 
       } 
      }); 
     } 
     function getLiText(point) { 
      var lat = point.lat(), 
       lng = point.lng(); 
      return "lat: " + lat + " lng: " + lng; 
     } 

     google.maps.event.addDomListener(window, 'load', initialize); 
    </script> 
</body> 
</html> 
+0

好的工作。非常感謝..但我可以問一個問題..?這個路徑是由谷歌自動生成的。但假設我想選擇其他路徑,那麼它的工作原理如何?假設我找到了3條不同的路徑,但我想選擇我自己的路徑,那麼我該怎麼做? – deepak

+0

你會如何找到3條不同的路徑?我不確定要理解你的問題 – sabotero

+0

在這個方向上,當我們輸入源和目的地時,它會在這兩個地方之間創建一條路徑。但它只需要1條路徑。但是當假設這兩個地方有三條不同的路徑時,我們如何選擇另一條路徑?得到這個? – deepak