2012-01-10 10 views
1

これは私をナットにしています。私は、緯度、長いを決定するためにPHPを使用してマップをロードしていますGoogleマップV3を使用した:変数latとしてlngを渡すと地図が壊れます

function initialize() { 
    var latlng = "<?php echo $lat;?>,<?php echo $long;?>"; 
    console.log(latlng); 
    var mapOptions = { 
     center: new google.maps.LatLng(<?php echo $lat;?>,<?php echo $long;?>), 
     zoom: 8, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    var map = new google.maps.Map(document.getElementById("map_canvas") 
             , mapOptions); 
} 

これが正常に動作します。私は緯度経度VARに

center: new google.maps.LatLng(latlng), 

に合格しようとする場合はマップだけでブルースクリーンが表示され、(何のズームまたはコントロールか何か)壊れていません。コンソールログとソースは、パラメータを正しく生成しているように見えます。何が起きているのかについてのアイデアはありますか?

私はをbodyに持っていましたが、私のスクリプトで(document).readyに移動しました。これはこの問題のために何の違いも生じていないようです。

+1

「latLng(lat、lng)」 - http://code.google.com/apis/maps/documentation/javascript/reference.html#LatLng – georg

答えて

5

です。

+0

ダーピングはもちろんありません。ありがとうございました。 – Zac

4
new google.maps.LatLng(12.3456, 12.3456); 

var latlng = "12.3456,12.3456"; 
new google.maps.LatLng(latlng); 

前者が期待されるものです機能の中に2つの数値パラメータを渡すと同じではありません。後者は1つの文字列を関数に渡します。これはエラーです。

new google.maps.LatLng(<?php echo $lat;?>,<?php echo $long;?>) 

new google.maps.LatLng("<?php echo $lat;?>,<?php echo $long;?>") 

引用符を使用すると、動作しません緯度経度のコンストラクタに文字列リテラル、に渡している意味と同じではありませんので、

関連する問題