2012-11-15 36 views
0

我对代码有一点疑问,我不知道它是什么。我试图在各地之间画出方向,但代码不起作用。我尝试这个页面:https://developers.google.com/maps/documentation/javascript/directions#TravelModes但我无法得到它。谢谢 !下面是代码:JQuery Mobile和Google Maps方向问题

$(document).ready(function() { 

     $('#Encuentrame').click(function() { 
      if (navigator.geolocation) { 
       navigator.geolocation.getCurrentPosition(exito, error); 
      } else { 
       error('El navegador no soporta GeoLocalizacion'); 
      } 
     }); 
    }); 




    function exito(position) { 
     var marcadorCasa = new google.maps.LatLng(-34.5688496,-58.4322009); //establece la posicion de un marcador que elijo 
     var plazaDeMayo = new google.maps.LatLng(-34.60841643923174,-58.37216913700104); 
     var directionsDisplay; 
     directionsDisplay = new google.maps.DirectionsRenderer(); 
     var directionsService = new google.maps.DirectionsService(); 
     var latlng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude); 
     var myOptions = { 
     zoom: 19, 
     center: latlng, 
     mapTypeControl: false, 
     navigationControlOptions: {style: google.maps.NavigationControlStyle.SMALL}, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
     }; 
     var mapcanvas = $('#mapcanvas'); 
     var map = new google.maps.Map(mapcanvas[0], myOptions); 
     var marker = new google.maps.Marker({ 
      position: latlng, 
      map: map, 
      title:"Creo que estoy aca !" 
     }); 
     directionsDisplay.setMap(map); 
     var lugarCasa = new google.maps.Marker({ 
     position:marcadorCasa, 
     map:map, 
     title:"CASA", 
     animation: google.maps.Animation.BOUNCE 
     }); 
     var plaza = new google.maps.Marker({ 
     position:plazaDeMayo, 
     map:map, 
     animation: google.maps.Animation.BOUNCE, 
     title:"Plaza de Mayo" 
     }); 

     var requerimientoDeDirecciones = new google.maps.DirectionsRequest({ 
     origin: latlng, 
     destination: LugarCasa, 
     travelMode: google.maps.TravelMode.BICYCLING, 
     unitSystem: UnitSystem.METRIC, 
     }); 

     directionsService.route(requerimientoDeDirecciones, function(result, status) { 
     if (status == google.maps.DirectionsStatus.OK) { 
      directionsDisplay.setDirections(result); 
     } 
     }); 

    } 

回答

0

有在你的代码中的一些错误:

  • google.maps.DirectionsRequest实际上并不存在。 Google地图文档没有指出任何构造函数。它应该被定义为一个匿名对象。
  • origindestination必须是google.maps.LatLngString。代码中的LugarCasa不是这种情况。
  • 您正在使用UnitSystem.METRIC而不是google.maps.UnitSystem.METRIC

这里有一个工作版本:

var requerimientoDeDirecciones = { 
    origin: latlng, 
    destination: marcadorCasa, 
    travelMode: google.maps.TravelMode.BICYCLING, 
    unitSystem: google.maps.UnitSystem.METRIC 
}; 
+0

非常感谢亚历山大Ardhuin!但是它的代码不适用于...地图中的指示不是渲染器......有人知道为什么? –

+0

我怀疑'TravelMode.BICYCLING'在你的国家不可用。尝试检查'status'的值是什么,我认为它不是'DirectionsStatus.OK'。您也可以尝试使用'travelMode:google.maps.TravelMode.DRIVING'。 –

+0

我解决它谢谢! –