2016-11-12 45 views
3

我有这个代码,问题是$ address_array只是提取数组中的最后一个位置。谷歌地图API函数getlatlong

我该如何解决?

HMTL

<div id="map"></div> 

JQUERY

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 

PHP

<?php 
function getlatlong($address){ 
     $url = 'http://maps.googleapis.com/maps/api/geocode/json?address=' . urlencode($address) . '&sensor=true'; 
     $json = @file_get_contents($url); 
     $data = json_decode($json); 
     if ($data->status == "OK") 
      return $data; 
     else 
      return false; 
} 
$address_array = array('Germany', 'Poland', 'Italy'); 
foreach ($address_array as $address) { 
    $data = getlatlong($address); 
    $location = $data->results[0]->geometry->location; 
} 
?> 

JS穿心莲地图

<script> 
    function initMap() { 
     var map = new google.maps.Map(document.getElementById('map'), { 
      zoom: 3, 
      center: {lat: -28.024, lng: 140.887} 
     }); 
    } 
</script> 
<script defer src="https://maps.googleapis.com/maps/api/js?key=&callback=initMap"></script> 
+2

数据/位置在每次循环迭代中被覆盖 – 2016-11-12 00:03:49

回答

0

固定

这段代码写了一个人,它的效果很好。

该代码返回latlng位置。

$address_array = array("Germany", "Poland", "Italy","Italy","Italy"); 
    $encoded_adress_array = []; 

    foreach ($address_array as $address) { 
     array_push($encoded_adress_array, getlatlong($address)->results[0]->geometry->location); 
    }