2014-02-21 201 views
0

我想根據訪問者的位置來中心我的地圖,但不知何故它不起作用。谷歌地圖v3 api,基於位置的中心地圖

我有一個包含我的訪問者的國家代碼的PHP變量,當我檢查我的瀏覽器中的源代碼時工作正常。它看起來像這樣;

<head> 
... 
    <script type="text/javascript"> 
     var lang = <?php echo $lang; ?>; 
    </script> 
    <script type="text/javascript" src="js/script.js"></script> 

</head> 
<body onload="initialize()"> 
... 

我的script.js包含這些行;

function initialize() { 

if (lang == NL) { 
    var centerlat = 52.150892; 
    var centerlng = 5.534668; 
    var zoomlvl = 7; 
} 
else { 
    var centerlat = 52.367896; 
    var centerlng = 5.219407; 
    var zoomlvl = 13; 
} 

var myLatlng = new google.maps.LatLng(centerlat,centerlng); 
var myOptions = { 
    zoom: zoomlvl, 
    center: myLatlng, 
    ... 
} 

map = new google.maps.Map(document.getElementById("kaart"), myOptions); 

當我加載包含地圖的頁面時,它並沒有出現。在源代碼中,我可以看到PHP變量正確顯示。

Firebug說lang是未定義的。任何想法這裏發生了什麼?

//編輯:我有另一個變量以相同的方式工作正常。但它的外部初始化函數。

解決:忘記報價^^

+0

所以地圖上沒有加載,它說「郎未定義」?還有其他事情嗎?你能提供一個jsfiddle嗎? – Skitterm

回答

0

任何想法什麼怎麼回事?

對不起,我沒有代表以 '評論'

是NL一個字符串變量或值(它應該是 「NL」?)

+0

我覺得自己像個白癡。感謝您的先生:D – Tony

1

嘗試環繞NL與「」。

作爲一邊你有沒有看過HTML 5地理定位?其相對簡單的實施,並會給你一個更準確的位置。

到這裏看看:這裏:http://www.w3schools.com/html/html5_geolocation.asp

+0

感謝您的回答:) 是ive查看它,但因爲我不想將地圖圍繞我的訪問者,但圍繞他們的國家,因爲所有國家都有不同的大小(和不同的縮放級別顯示他們正確)我認爲這種方式會更好。請糾正我,如果我錯了 – Tony

+0

公平不夠,只是確保你知道的選項:) – Swires