在Google地图上映射多个地址-javascript API和PHP

在Google地图上映射多个地址-javascript API和PHP,php,javascript,google-maps,Php,Javascript,Google Maps,我有一个包含地址数组的PHP变量。我正在使用Googlemaps v3 javascript API。我有一个函数可以对地址进行地理编码并放置标记,但我不知道如何为php变量中存储的每个地址运行该函数 有什么想法吗,伙计们 编辑:geodecoding函数是一个javascript函数 Javascript函数: <script type="text/javascript"> var geocoder; var map;

我有一个包含地址数组的PHP变量。我正在使用Googlemaps v3 javascript API。我有一个函数可以对地址进行地理编码并放置标记,但我不知道如何为php变量中存储的每个地址运行该函数

有什么想法吗,伙计们

编辑:geodecoding函数是一个javascript函数

Javascript函数:

<script type="text/javascript"> 
          var geocoder;
          var map;
          function initialize() {
            geocoder = new google.maps.Geocoder();
            var latlng = new google.maps.LatLng(58.813742, -98.789062);
            var myOptions = {
              zoom: 4,
              center: latlng,
              mapTypeId: google.maps.MapTypeId.HYBRID
            }
            map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
          }

          //Change Address to Latlng and show on Map
          function codeAddress() {
            var address = "10 my house street, city, state";
            geocoder.geocode( { 'address': address}, function(results, status) {
              if (status == google.maps.GeocoderStatus.OK) {
                map.setCenter(results[0].geometry.location);
                map.setZoom(14);
                var marker = new google.maps.Marker({
                    map: map, 
                    position: results[0].geometry.location,
                });
              } else {
                alert("Geocode was not successful for the following reason: " + status);
              }
            });
          }
        </script> 

var地理编码器;
var映射;
函数初始化(){
geocoder=新的google.maps.geocoder();
var latlng=新的google.maps.latlng(58.813742,-98.789062);
变量myOptions={
缩放:4,
中心:拉特林,
mapTypeId:google.maps.mapTypeId.HYBRID
}
map=new google.maps.map(document.getElementById(“map_canvas”),myOptions);
}
//将地址更改为Latlng并显示在地图上
函数代码地址(){
var address=“州、市、我家街10号”;
geocoder.geocode({'address':address},函数(结果,状态){
if(status==google.maps.GeocoderStatus.OK){
map.setCenter(结果[0].geometry.location);
map.setZoom(14);
var marker=new google.maps.marker({
地图:地图,
位置:结果[0]。geometry.location,
});
}否则{
警报(“地理编码因以下原因未成功:“+状态”);
}
});
}
使用foreach循环:

<?php

foreach ( $array_of_addresses as $address ) {

// Do Whatever

}

?>


您正在使用Monte Ohrt的PHP库吗?如果不应该的话,它真的很好,您可以在这里下载它

定义JavaScript函数一次。然后,循环遍历PHP数组,并在每个地址上运行javascript函数。以下是一个例子:

function geocode() {
...
}

<?php
  foreach($arrAddress as $address) {
?>
    geocode('<?php echo $address; ?>');
<?php
  }
?>
函数geocode(){
...
}
地理编码(“”);

好的。但是,现在我面临另一个问题。我现在知道地理编码器是未定义的,尽管我已经定义了地理编码。检查javascript函数的原始post.Ok。我得到了它。我在body内部调用geocoder函数,并在body load上设置initalize()。因此,在初始化之前调用geocoder函数。所以,现在我需要找到一种在主体初始化后调用geocoder函数的方法。让我们看看我能做些什么。有什么想法吗?只要把PHP代码放在codeAddress函数之后就行了。