2012-02-16 2 views
0

Я создаю свою собственную карту с использованием API Google Maps JS. Я хотел бы добавить направлениях функциональность карты, я последовал за official tutorial (Под Отображение названия DirectionsResult), но окончательный маршрут не появляется ...API Google maps API: Результат не отображается

Я отлажена мой код, и я нашел, чем directionsService.route Функция возвращает google.maps.DirectionsStatus.OK и directionDisplay.setDirections (result) действительно вызывается без ошибки JS ... Поэтому направления успешно вычисляются, но не отображаются на моей карте. A попытался отключить специальный стиль карты, но даже в стиле карты по умолчанию он не появляется. Любые идеи, где могла возникнуть проблема?

ОК, некоторый код ...:

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?key=AIzaSyAB2gbXmG... ...mNs66iPr8&amp;sensor=false&amp;callback=directions_init"></script> 

    <script type="text/javascript"> 
     var map; 
     var zoom = 11; 
     var directionsDisplay; 
     var directionsService; 

     function gmap_init(){ 
      var styleArray = [ /*here is style but even if its commented its not working*/]; 

      var alterMapStyle = new google.maps.StyledMapType(styleArray, {name: "ALTER style"}); 


      var latlng = new google.maps.LatLng(/*lat, lng*/); 
      var myOptions = { 
       zoom: zoom, 
       center: latlng, 
       mapTypeId: google.maps.MapTypeId.ROADMAP, 
       mapTypeControl: false, 
       panControl: false, 
       zoomControl: false, 
       scaleControl: false, 
       streetViewControl: false 
      }; 
      map = new google.maps.Map(document.getElementById("gmap"), myOptions); 

      map.mapTypes.set('ALTER_style', alterMapStyle); 
      map.setMapTypeId('ALTER_style'); 


     } 

     function directions_init(){ 

      directionsService = new google.maps.DirectionsService(); 
      directionsDisplay = new google.maps.DirectionsRenderer(); 
      directionsDisplay.setMap(map); 

      display_route(); 

     } 

     function display_route(){ 
      var request = { 
       origin: 'Place A', 
       destination:'Place B', 
       travelMode: google.maps.TravelMode.DRIVING 
       }; 

      directionsService.route(request, function(result, status) { 
      if (status == google.maps.DirectionsStatus.OK) { 
       //program got here without error 
       directionsDisplay.setDirections(result); 
      } 
      }); 

     } 
+0

, пожалуйста, отправьте код – slawekwin

ответ

1

Не уверен, если это источник ваших проблем, но это обязательно стоит выстрел ... Ваш сценарий ввода

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?key=AIzaSyAB2gbXmG... ...mNs66iPr8&amp;sensor=false&amp;callback=directions_init"></script> 

Я предполагаю, что функция direction_init вызывается после того, как был загружен скрипт api, который, вероятно, находится перед событием onload, поэтому ваш объект карты не был инициирован и имеет значение NULL. Так что практически вы звоните

directionsDisplay.setMap(null); 

Попробуйте позвонить directions_init из gmap_init или на любом событии, которое запускается после OnLoad.

+0

Его работа, спасибо! –