如何动态生成不同的谷歌地图

时间:2017-08-18 00:48:30

标签: javascript php jquery html google-maps-api-3

这是我的问题。我有很多商家,我想为每个商家展示谷歌地图(所有这些都在一个HTML页面中)。

对于我所拥有的每项业务:

  • 纬度和经度(总是)。
  • 地址但有时不是街道号码。

问题。

如何使用谷歌地图API使用纬度/经度或业务为每个商家插入谷歌地图?

难点

- 使用每个企业的ID并不理想。

- 如何将纬度/经度传递给javascript函数以插入地图?

以下是我想要做的一般概念。

假设我有一系列业务,其中包含有关每项业务的信息。

foreach($businessesList as $businessName =>bInfo)
{
       list($about, addressText, $lat, $long) = $bInfo

       <div> $businessName</div>
       <div> $about</div>
       <div class='map'>

//使用$ lat,$ long和Google Maps API为每个商家在此div中插入谷歌地图。

            </div>

}

我对javascript和jquery的体验很少,因为大部分都是使用PHP

我可以设置一个数组来包含Google Maps嵌入代码,并且基本上会查找每个商家的嵌入代码,但我不喜欢这样。

例如addressArray = [&#39; business1&#39; =&gt;&#39;嵌入从谷歌地图复制的代码。&#39;,.....]

PS随时可以要求澄清。

提前致谢。

1 个答案:

答案 0 :(得分:0)

所以你有php数组包含所有需要的数据,如latlng

然后你可以在php上迭代它并为每个项目渲染html

每个商家地图都有html ID 可以

一些元代码:

<?php

$myplaces = [
    [
        'address'=>'Example 1, NY',
        'lat'=>30.123456,
        'lng'=>50.123456
    ],
    [
        'address'=>'Example 2, LA',
        'lat'=>40.123456,
        'lng'=>50.123456
    ],
    //as many you like
];

$unique_id = 0;
foreach($myplaces as $place){    
    ?>
    <h1><?php echo $place['address']; ?></h1>
    <div id="map_<?php echo $unique_id; ?>"></div>
    <script>
    var pos = {lat: <?php echo $place['lat']; ?>, lng: <?php echo $place['lng']; ?>};
    var map = new google.maps.Map(document.getElementById('map_<?php echo $unique_id; ?>'), {
        zoom: 4,
        center: pos 
    });
    var marker = new google.maps.Marker({
        position: pos,
        map: map
    });
    </script>
    <?php
    $unique_id++;
}
?>

docs:https://developers.google.com/maps/documentation/javascript/adding-a-google-map

不要忘记将谷歌地图脚本本身包含在适当的api密钥中