2011-07-10 12 views
1

一部のJSONをページでWordPressのデータを使用して設定し、そのjsonをループしてマップにマーカーを追加するJSに渡します。私はそれが働くことにとても近いので、この最後の部分を理解する必要があります。配列からGoogle Mapsオブジェクトに値を渡そうとするときにエラーが発生する

配列からJSONを作成するために、私のPHPコードは:

<script type="text/javascript"> 
var markers = <?php echo json_encode($pageposts);?> 
</script> 

ここに私のJSコードです: VAR情報ウィンドウ= nullは、

$(document).ready(function(){ 
    initialize(); 
    }); 

function initialize() { 

var centerMap = new google.maps.LatLng(41.141208, -73.263726); 
var options = { 
    zoom: 12, 
    center: centerMap, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
} 
var map = new google.maps.Map(document.getElementById('map'), options);  

setMarkers(map, markers); 
    infowindow = new google.maps.InfoWindow({ 
    content: "loading..." 
    }); 
} 

function setMarkers(map, markers) { 
    for (var i = 0; i < markers.length; i++) { 
    var marker = new google.maps.Marker({ 
    position: new google.maps.LatLng(markers[i].meta_value), 
    map: map 
}); 

var contentString = "Some content"; 

google.maps.event.addListener(marker, "click", function() { 
//infowindow.setContent(this.html); 
//infowindow.open(map, this); 
}); 

}}

あなたはJSONが組み込みで、ページを表示したい場合は - このリンクをチェックアウト: http://www.fairfieldctguide.com/test-map ビューソース:のhttp://www.fairfieldctguide.com/test -map

ご協力いただければ幸いです。 Jake

+0

私は、任意のループが表示されません。 –

答えて

1

google.maps.LatLngは、引数として2つの数字が必要です。現在、エラーが発生する文字列を渡しています。あなたはあなただけの別のプロパティで数値として緯度とLNGの値を格納することができconversonを行うにはしたくない場合は

function setMarkers(map, markers) { 
    for (var i = 0; i < markers.length; i++) { 
    latlng = markers[i].meta_value.split(",") 
    lat = parseFloat(latlng[0]) 
    lng= parseFloat(latlng[1]) 
     var marker = new google.maps.Marker({ 
      position: new google.maps.LatLng(lat, lng), 
      map: map 
     }); 

     var contentString = "Some content"; 

     google.maps.event.addListener(marker, "click", function() { 
      //infowindow.setContent(this.html); 
      //infowindow.open(map, this); 
     }); 
    } 
} 

:だからあなたはそうのような二つの数字に.metavalue [i]は、あなたのマーカーを変換する必要があります。だからあなたのJSONは次のようになります。

var markers = [{ 
      "ID":"883", 
      "post_title":"Tucker's Cafe", 
      "meta_key":"meta_geo", 
      "lat":41.1674377, 
"lng": -73.2236554 
     } 

を、あなたはそうのようなマーカーを追加します。

var marker = new google.maps.Marker({ 
      position: new google.maps.LatLng(markers[i].lat, markers[i].lng), 
      map: map 
     }); 
+0

素晴らしい!どうもありがとうございます! – jrutter

関連する問題