谷歌地图v3 api,基于位置的中心地图

时间:2014-02-21 18:51:12

标签: javascript google-maps google-maps-api-3

我正在尝试根据访问者的位置来居中我的地图,但不知何故它不起作用。

我有一个包含访问者国家代码的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未定义。有什么想法在这里发生吗?

//编辑:我有另一个变量以相同的方式完成,工作正常。但它在初始化函数之外。

解决:忘记引号^^

2 个答案:

答案 0 :(得分:1)

使用“”尝试环绕NL。

另外,您是否考虑过HTML 5地理定位?它实现起来相对简单,并且会为您提供更准确的位置。

在这里查看:https://developers.google.com/maps/documentation/javascript/examples/map-geolocation和此处:http://www.w3schools.com/html/html5_geolocation.asp

答案 1 :(得分:0)

  
    

有什么想法在这里发生?

  
抱歉,我没有'评论'的代表

NL是字符串变量还是值(应该是“NL”?)