我正在尝试在我的自定义谷歌地图上绘制一条折线,其纬度和经度存储在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),
];
我知道我需要一个循环,但我不知道如何做到这一点。任何帮助都会非常感激...我也知道有类似的问题,但我不明白那里发布的代码。
答案 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);