如何使用变量来定义新的google.maps.LatLng()

时间:2014-08-07 02:26:34

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

我已阅读,阅读和阅读,但我无法弄清楚这一点。我有一系列的lats和一个数组lngs。我需要能够将值传递给数组中的新google.maps.LatLng()。看起来这样可行:

new google.maps.LatLng(lats[0], lngs[0])

但事实并非如此。我无法弄清楚如何使这项工作。帮助

以下是数组的创建方式:

    <script type="text/javascript">

var lats = [];
var lngs = [];
  function initialize() {

var geo = new google.maps.Geocoder;
  var address = "<?php echo $arrayAddress; ?>";
geo.geocode({'address':address},function(results, status){
if (status == google.maps.GeocoderStatus.OK) {              
    lats.push(results[0].geometry.location.lat());
    lngs.push(results[0].geometry.location.lng());
} else {
    alert("Geocode was not successful for the following reason: " + status);
}
});
  }

  google.maps.event.addDomListener(window, 'load', initialize);
</script>

如果我是console.log(lat [0])我得到了预期的结果。

这是我正在尝试创建new.google.mapsLatLng()的地方:

<script type="text/javascript">
var map;
function initialize() {
    var mapOptions = {
    zoom: 8,
    center: new google.maps.LatLng(lats[0], lngs[0])
    };
    map = new google.maps.Map(document.getElementById('map-canvas'),mapOptions);
 }

 google.maps.event.addDomListener(window, 'load', initialize);
 </script>

这是在wordpress的循环之外。地理编码器部分位于循环内部。我正在为循环中的所有帖子地址编码并将坐标移动到该数组中,然后将坐标数组作为标记放在循环外部的地图上。

1 个答案:

答案 0 :(得分:1)

 var locat = new google.maps.LatLng(34,74);
            geocoder = new google.maps.Geocoder();
            var mapOptions = {
                zoom: 11,
                center: locat,
                mapTypeId: google.maps.MapTypeId.ROADMAP
            };
            map = new google.maps.Map(document.getElementById(divID), mapOptions);