在谷歌地图中从mysql数据库创建折线

时间:2015-05-27 09:39:07

标签: php mysql google-maps-api-3

我正在尝试在我的自定义谷歌地图上绘制一条折线,其纬度和经度存储在MYSQL数据库中。

我目前得到的地理数据是这样的:

$sql = "SELECT lat, lng from locations where deviceid = '$wert';";
 require_once ('config.php');
    $db_link = mysqli_connect (MYSQL_HOST, 
                       MYSQL_BENUTZER, 
                       MYSQL_KENNWORT, 
                       MYSQL_DATENBANK);
    mysqli_set_charset($db_link, 'utf8');
    $db_erg = mysqli_query( $db_link, $sql );

         if ( ! $db_erg )
            {
                die('Ungültige Abfrage: ' . mysqli_error($db_link));
            }
while( $zeile = mysqli_fetch_array($db_erg, MYSQL_NUM ) ) {
$json[] = $zeile;
}
echo json_encode( $json );?>

我的输出如下:

[["48.20315709","16.27662076"],["48.20315722","16.27662077"],["48.20315721","16.27662077"]]

我的问题是我真的不知道如何获取这些值:

var flightPlanCoordinates = [
new google.maps.LatLng(37.772323, -122.214897),
new google.maps.LatLng(21.291982, -157.821856),
];

我知道我需要一个循环,但我不知道如何做到这一点。任何帮助都会非常感激...我也知道有类似的问题,但我不明白那里发布的代码。

1 个答案:

答案 0 :(得分:1)

将json输出分配给javascript变量,然后您可以执行以下操作:

var polylinePlanCoordinates  = [];
 var polyline_data = <?php echo json_encode( $json ); ?>;
 for (var i=0;i< polyline_data.length;i++ ){
  polylinePlanCoordinates.push(new google.maps.LatLng(polyline_data[i][0], polyline_data[i][1]));
}

var path= new google.maps.Polyline({
  path: polylinePlanCoordinates,
 geodesic: true,
strokeColor: '#FF0000',
strokeOpacity: 1.0,
strokeWeight: 2
 });

 path.setMap(map);