0

首先,我是使用 Google Maps API 开发的初学者,并且想知道在地图中显示由折线制成的路线的最佳方式是什么,该路线从 mysql 数据库中的表中获取其坐标?

数据库有一个名为“routes”的表,其中包含以下字段

id route_type user_id 标题描述

另一个名为“route_dots”的表包含所有路线的所有坐标,每条路线都有不同的路线 ID

id route_id 纬度 lng

在其他网站上,我找到了一个解决方案,我可以生成一个 JSON 文件,其中包含路线的所有信息,例如 LAT 和 LNG 坐标、标题、描述,然后让地图读取该信息以显示路线。我使用一个名为 getjson.php 的 php 文件做到了这一点,其中包含以下代码..

<?php
require 'con_mapas.php';
try {
$db = new PDO($dsn, $dbuser, $dbpass);
$db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$sth = $db->query("SELECT * FROM spots");
$locations = $sth->fetchAll();

echo json_encode( $locations );

} catch (Exception $e) {
    echo $e->getMessage();
}

?>

该文件运行良好,并使用从数据库中获取的信息生成 JSON,但我的问题是,我如何在地图中显示所有这些信息(绘制为折线的路线,带有包含标题和描述的信息窗口?应该注意的是,存储在数据库中的每个纬度/经度坐标都有一个名为“route_id”的字段,该字段的值可以是 A、B 或 C。我想做的是在地图上显示不同的路线,每个路线对应一个不同的“route_id”值。

如何做到这一点?你能帮我写代码吗?

谢谢

4

1 回答 1

0

您可以使用一组 lat/lng 绘制折线。

  var flightPlanCoordinates = [
    new google.maps.LatLng(37.772323, -122.214897),
    new google.maps.LatLng(21.291982, -157.821856),
    new google.maps.LatLng(-18.142599, 178.431),
    new google.maps.LatLng(-27.46758, 153.027892)
  ];
  var flightPath = new google.maps.Polyline({
    path: flightPlanCoordinates,
    strokeColor: "#FF0000",
    strokeOpacity: 1.0,
    strokeWeight: 2
  });

文档示例

于 2013-01-03T17:41:17.070 回答