2015-03-16 6 views
-1

Я использую приведенный ниже код, чтобы получить ответ JSONP и проанализировать длинные и длинные и выходные данные в качестве Makers на карте google.Маркеры Google Maps не отображаются?

На консоли console.out отображаются правильные латы и длинные в консоли, однако маркеры не отображаются на карте.

Что я делаю неправильно?

<!DOCTYPE html> 
<html> 
    <head> 
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 
    <style type="text/css"> 
     html { height: 100% } 
     body { height: 100%; margin: 0; padding: 0 } 
     #map_canvas { height: 100% } 
    </style> 
    <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=true"> 
    </script> 
    <script type="text/javascript"> 
     var map; 
     function initialize() { 
     var mapOptions = { 
      center: new google.maps.LatLng(-36.8, 174.6), 
      zoom: 12, 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
     }; 
     } 
    </script> 
    <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>  
    </head> 
    <body> 
    <div id="map_canvas" style="width:100%; height:100%"></div> 
    <script> 
    $(document).ready(function() { 
     jQuery.ajax({ 
      type: "GET", 
      url: 'http://api.at.govt.nz/v1/public/realtime/vehiclelocations?api_key=<APIKEYHERE>', 
      dataType: "jsonp", 
      cache: false, 
      crossDomain: true, 
      processData: true, 

      success: function (data) { 
       //alert(JSON.stringify(data)); 
       var iconBase = 'images/'; 
       map = new google.maps.Map(document.getElementById("map_canvas"), 
      mapOptions); 

       $.each(data.response.entity, function(key, data) { 
        var latLng = new google.maps.LatLng(data.vehicle.position.latitude,data.vehicle.position.longitude); 
        console.log(latLng); 
        // Creating a marker and putting it on the map 
        var marker = new google.maps.Marker({ 
         position: latLng, 
         map: map, 
         //icon: iconBase + 'bus2.png' 
        }); 
       }); 
       initialize(); 
      }, 
     error: function (XMLHttpRequest, textStatus, errorThrown) { 
     alert("There is a problem"); 
     } 

     }); 
    }); 
+0

Что данные, возвращаемые запросом AJAX выглядеть? – geocodezip

ответ

0

Может быть, ваш маркер (ы) не соответствует текущим границам карт? После добавления новых маркеров вам необходимо вручную изменить центр карты или границы, Google Maps не сделает это за вас.

Уровень 12 уровня довольно узкий, поэтому это определенно возможность.

1

Вы создаете карту дважды, в ajax-обратном вызове и onload.

Снимите onload -listener и вызвать initialize() в Ajax обратного вызова вместо

map = new google.maps.Map(document.getElementById("map_canvas"), 
      mapOptions); 
+0

Спасибо, доктор, я проведу сегодня вечером и приму ответ, если работаю. – Yonkee

+0

К сожалению, это не сработает. Я обновил код до ваших предложений. – Yonkee

+0

ваш обновленный кодовый код все еще создает карту дважды, до и после '$ .each' –

Смежные вопросы