如果我将lat,lng作为变量传递,则映射中断

Zac*_*Zac 1 javascript php google-maps-api-3

这让我疯了.使用Google Maps v3我使用php加载地图以确定lat long:

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);
}
Run Code Online (Sandbox Code Playgroud)

这很好用.但是,如果我尝试传入latlng var

center: new google.maps.LatLng(latlng),
Run Code Online (Sandbox Code Playgroud)

地图只显示一个蓝色的屏幕并且坏了(没有缩放或控件或任何东西).控制台日志和源代码看起来正确生成参数.关于可能发生的事情的任何想法?

我确实有initialize(),body但我把它移到(document).ready我的脚本中.对于这个问题,这似乎没有任何区别.

Cod*_*nci 5

这是因为

new google.maps.LatLng(<?php echo $lat;?>,<?php echo $long;?>)
Run Code Online (Sandbox Code Playgroud)

是不一样的

new google.maps.LatLng("<?php echo $lat;?>,<?php echo $long;?>")
Run Code Online (Sandbox Code Playgroud)

引号意味着您将字符串文字传递给LatLng构造函数,这不起作用.