2013-10-19 65 views
0

我使用本地JSON文件顯示在谷歌地圖的位置GEOMAP ..我可以正確地顯示在地圖上,但不是在它的顯着位置。請幫助的Json值不檢索

這是我的代碼

var json; 

$(document).ready(function(){ 
var map; var infowindow; 
var jsonData = '[{ "id" : "1" , "Lat" : "-36.847043" ,"Lng" :"174.761543"},{ "id" : 
"2" 
    , "Lat" : "-37.791174" ,"Lng" :"175.297813"},{ "id" : "3" , "Lat" : "-38.679988" 
,"Lng" :"176.077843"},{ "id" : "4" , "Lat" : "-41.297257" ,"Lng" :"174.759483"} ]'; 
    //alert(jsonData); 
    json = $.parseJSON(jsonData); 
    }); 

    function InitializeMap() { 
var Lat="-36.847043"; 
var Lng="174.761543"; 
    var latlng = new google.maps.LatLng(Lat,Lng); 
    var myOptions = 
    { 
     zoom: 8, 
     center: latlng, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
     }; 
     map = new google.maps.Map(document.getElementById("map"), myOptions); 
    } 

function markicons() { 
    InitializeMap(); 

var ltlng = []; 

alert(json); 
console.log(json.Lat); 
    for (var i=0; i <=json.length; i++) 
    { 
    alert(LatLng); 
    ltlng.push(new google.maps.LatLng(json[i].Lat, json[i].Lng)); 
    } 


    //ltlng.push(new google.maps.LatLng(-36.847043, 174.761543)); 
    // ltlng.push(new google.maps.LatLng(-37.791174,175.297813)); 
    // ltlng.push(new google.maps.LatLng(-38.679988,176.077843)); 
    // ltlng.push(new google.maps.LatLng(-41.297257,174.759483)); 

    map.setCenter(ltlng[0]); 
    for (var i = 0; i <= ltlng.length; i++) { 
     marker = new google.maps.Marker({ 
      map: map, 
      position: ltlng[i] 
     }); 

     (function (i, marker) { 

      google.maps.event.addListener(marker, 'click', function() { 

       if (!infowindow) { 
        infowindow = new google.maps.InfoWindow(); 
       } 

       infowindow.setContent("Message" + i); 

       infowindow.open(map, marker); 

      }); 

     })(i, marker); 

    } 

} 

window.onload = markicons; 

這是我的錯誤,當我安慰它:

Uncaught ReferenceError: LatLng is not defined

幫助 - 在此先感謝

+0

具有u defned經緯度? – super

+0

@bios:是在Intializemapp()下作爲var的樂趣Lat =「 - 36.847043」; var Lng =「174.761543」; –

+1

你已經定義了latlng不是LatLng – super

回答

0

您已經定義經緯度沒有經緯度嘗試這樣的事:

for (var i = 0; i <= json.length; i++) { 

    ltlng.push(new google.maps.LatLng(json[i].Lat, json[i].Lng)); 
    alert(ltlng[i]); 
} 

,或者您需要var latlng = new google.maps.LatLng(Lat,Lng);經緯度值警報,那麼首先你必須改變變量名,並宣佈經緯度具有全球範圍。

試試這個:

<script type="text/javascript"> 
    function markicons() { 

     var map = new google.maps.Map(document.getElementById("map"), { 
       mapTypeId : google.maps.MapTypeId.ROADMAP, 
       center : new google.maps.LatLng(-36.847043, 174.761543), 
       zoom : 6 
      }); 

     var infowindow = new google.maps.InfoWindow({ 
       content : "holding..." 
      }); 

     var jsonData = '[{ "id" : "1", "Lat" : "-36.847043", "Lng" :"174.761543"},' 
      + '{ "id" : "2", "Lat" : "-37.791174", "Lng" :"175.297813"},' 
      + '{ "id" : "3", "Lat" : "-38.679988", "Lng" :"176.077843"},' 
      + '{ "id" : "4", "Lat" : "-41.297257", "Lng" :"174.759483"} ]'; 

     var json = $.parseJSON(jsonData); 

     var ltlng = []; 

     for (var i = 0; i < json.length; i++) { 
      ltlng.push(new google.maps.LatLng(json[i].Lat, json[i].Lng)); 
     } 

     map.setCenter(ltlng[0]); 
     for (var i = 0; i < ltlng.length; i++) { 
      marker = new google.maps.Marker({ 
        map : map, 
        position : ltlng[i] 
       }); 

      (function (i, marker) { 

       google.maps.event.addListener(marker, 'click', function() { 

        if (!infowindow) { 
         infowindow = new google.maps.InfoWindow(); 
        } 

        infowindow.setContent("Message" + i); 

        infowindow.open(map, marker); 

       }); 

      })(i, marker); 
     } 
    } 

    google.maps.event.addDomListener(window, 'load', markicons); 

</script> 

HTML:

<div id="map" style="width:700px;height:700px;"></div> 

Demo