Ver Mensaje Individual
  #3 (permalink)  
Antiguo 11/05/2015, 12:42
cmelgarejo
 
Fecha de Ingreso: mayo-2015
Mensajes: 2
Antigüedad: 9 años, 7 meses
Puntos: 0
Respuesta: geolocalizacion de una ruta con waypoint api de google maps

Hola NueveReinas ,sip lo que me falta es geolocalizar la posicion actual que la da el navegador y ponerla como el inicio de la ruta y encontrar el waypoint mas alejado como el final en esta parte del codigo:
Código HTML:
Ver original
  1. var request = {
  2. origin: local,
  3.  
  4. waypoints:[{location:' (-36.925579, -73.025150) '},
  5. {location:' (-36.925957, -73.028669) '},{location:' (-36.916899, -73.025707) '}],
  6.  
  7. optimizeWaypoints: true,
  8. destination: "(-33.47985788103725, -70.64004394531253)",
  9.  
  10. travelMode: google.maps.DirectionsTravelMode.DRIVING
  11. };

el contexto del proyecto es qu estas en alguna parte y necesitas ir a visitar museos entonces tomas tu posicion actual y de la base de datos ya ingresada extraer las cordenas y encontrar la mas distante para poner del fin de la ruta.

Codigo completo:
Código HTML:
Ver original
  1. <meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
  2. <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
  3. <title> Waypoints </title>
  4. <style type="text/css">
  5. html { height: 100% }
  6. body { height: 100%; margin: 0px; padding: 0px }
  7. <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
  8. <script type="text/javascript">
  9. var directionDisplay;
  10. var directionsService = new google.maps.DirectionsService();
  11. var map;
  12.  
  13. function initialize() {
  14. directionsDisplay = new google.maps.DirectionsRenderer();
  15. var local = new google.maps.LatLng(-36.920193, -73.026995);
  16. var myOptions = {
  17. zoom: 6,
  18. mapTypeId: google.maps.MapTypeId.ROADMAP,
  19. center: local
  20. }
  21. map = new google.maps.Map(document.getElementById("map_canva s"), myOptions);
  22. directionsDisplay.setMap(map);
  23. calcRoute();
  24.  
  25.  
  26. function calcRoute() {
  27. function informacion (coordenadas) {
  28. $("#latitude").html(coordenadas.Lat);
  29. $("#longitude").html(coordenadas.Lng);
  30. }
  31. var coordenadas = {
  32. Lat: 0,
  33. Lng: 0
  34. };
  35.  
  36. function localizacion (posicion) {
  37. coordenadas = {
  38. Lat: posicion.coords.latitude,
  39. Lng: posicion.coords.longitude
  40. }
  41.  
  42. informacion(coordenadas);
  43. var local = new google.maps.LatLng(coordenadas.Lat, coordenadas.Lng);
  44. var request = {
  45. origin: local,
  46.  
  47. waypoints:[{location:' (-36.925579, -73.025150) '},
  48. {location:' (-36.925957, -73.028669) '},{location:' (-36.916899, -73.025707) '}],
  49.  
  50. optimizeWaypoints: true,
  51. destination: "(-33.47985788103725, -70.64004394531253)",
  52.  
  53. travelMode: google.maps.DirectionsTravelMode.DRIVING
  54. };
  55. directionsService.route(request, function(response, status) {
  56. if (status == google.maps.DirectionsStatus.OK) {
  57. directionsDisplay.setDirections(response);
  58. var route = response.routes[0];
  59. var summaryPanel = document.getElementById("directions_panel");
  60. summaryPanel.innerHTML = "";
  61. // For each route, display summary information.
  62. for (var i = 0; i < route.legs.length; i++) {
  63. var routeSegment = i + 1;
  64. summaryPanel.innerHTML += "<b>Route Segment: " + routeSegment + "</b><br />";
  65. summaryPanel.innerHTML += route.legs[i].start_address + " to ";
  66. summaryPanel.innerHTML += route.legs[i].end_address + "<br />";
  67. summaryPanel.innerHTML += route.legs[i].distance.text + "<br /><br />";
  68. summaryPanel.innerHTML += route.legs[i].duration.text + "<br />";
  69. }
  70.  
  71. computeTotalDistance(response);
  72. } else {
  73. alert("directions response "+status);
  74. }
  75. });//fin directionServise
  76. }//fin localizacion
  77. }//fin cal ruta
  78. }// fin inicialiti
  79. function computeTotalDistance(result) {
  80. var totalDist = 0;
  81. var totalTime = 0;
  82. var myroute = result.routes[0];
  83. for (i = 0; i < myroute.legs.length; i++) {
  84. totalDist += myroute.legs[i].distance.value;
  85. totalTime += myroute.legs[i].duration.value;
  86. }
  87. totalDist = totalDist / 1000.
  88. document.getElementById("total").innerHTML = "total distance is: "+ totalDist + " km<br>total time is: " + (totalTime / 60).toFixed(2) + " minutes";
  89. }
  90.  
  91. </head>
  92. <body onload="initialize()">
  93. <div id="map_canvas" style="float:left;width:70%;height:100%;"></div>
  94. <div id="control_panel" style="float:right;width:30%;text-align:left;padding-top:20px">
  95. <div id="directions_panel" style="margin:20px;background-color:#FFEE77;"></div>
  96. <div id="total"></div>
  97. </div>
  98. <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
  99. </script>
  100. <script type="text/javascript">
  101.  
  102. </script>
  103. </body>
  104. </html>