从数据库加载折线坐标并将其显示在地图中

时间:2013-01-03 15:26:45

标签: php javascript database google-maps

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

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

ID route_type 用户身份 标题 描述

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

ID ROUTE_ID LAT LNG

在其他网站上我找到了一个解决方案,我可以生成一个JSON文件,其中包含路径的所有信息,例如LAT和LNG坐标,标题,描述,然后让地图读取该信息以显示路线。我用一个php文件做到了这一点我称之为getjson.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,其中包含从数据库中获取的信息,但我的问题是,如何在地图中显示所有这些信息(绘制为折线的路线,包含标题的信息窗口)应该注意的是,存储在数据库中的每个lat / lng坐标都有一个名为“route_id”的字段,它可以具有A,B或C的值。我想做的是在地图中显示不同的路径,对应每个都有不同的“route_id”值。

如何做到这一点?你能帮我解决这个问题吗?

感谢

1 个答案:

答案 0 :(得分: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
  });

Example on documentations