【问题标题】:Getting Addresses From a database into a google map从数据库中获取地址到谷歌地图
【发布时间】:2013-07-01 21:25:47
【问题描述】:

我目前正在开发一个搜索系统,在搜索某个家后,它将显示搜索结果,并将搜索结果的地址显示在 google map api 中。

我设法通过数组在谷歌地图中显示多个地址,但现在我正在手动输入地址。如何将我在数据库中的地址放入此数组中。

这里是谷歌地图代码,注意 var locations 是包含地址数组的变量

var locations = ['250 - 13450 102 Avenue Surrey, BC', '8888 University Dr Burnaby, BC', '35-160 Pembina St.New Westminster, BC'];
                function geocodeAddress(i) {
                    geocoder.geocode(
                                    {
                                        'address' : locations[i]
                                    },
                                    function(results, status) {
                                        if (status == google.maps.GeocoderStatus.OK) {
                                            map.setCenter(results[0].geometry.location);
                                            createMarker(results[0].geometry.location, i);
                                        } else {
                                            alert('Geocode was not successful for the following reason: '
                                                    + status);
                                        }
                                    });
        }

这里是php部分

$mysqli = new mysqli("localhost","root","", "");
        if ($mysqli->connect_errno) {
            echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
        }
///////////set variables

$sql = $mysqli->query("select * from propertyinfo");

我也在 var 位置上试过这个

var locations = ['<?php 
                    while ($row = $sql->fetch_array(MYSQLI_ASSOC)){
                    echo ''.$row['StreetAddress'].', '.$row['City'].', BC, ';}
                    ?>'];

我似乎无法确定是否应该使用 json_encode 或其他东西。感谢所有的帮助。

【问题讨论】:

    标签: php javascript google-maps-api-3 mysqli


    【解决方案1】:

    您希望避免像这样将 PHP 逻辑直接放入输出中。它只是一团糟,并且使代码的工作变得比它必须的更困难。先在PHP中做逻辑,再放到输出中。

    在您的情况下,首先在 PHP 中创建位置数组,然后在需要时将该 PHP 数组转换为所需的输出格式。

    <?php
    $locations = array();
    while ($row = $sql->fetch_array(MYSQLI_ASSOC)){
        $locations[] = $row["StreetAddress"] . ", " . $row["City"] . ", BC";
    }
    ?>
    
    var locations = ['<?php implode("', '", $locations); ?>'];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-06
      相关资源
      最近更新 更多