2014-02-21 148 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