【发布时间】:2013-01-03 15:26:45
【问题描述】:
首先,我是使用 Google Maps API 开发的初学者,我想知道在地图中显示由折线构成的路线的最佳方式是什么,该路线从 mysql 数据库中的表中获取坐标?.
数据库有一个名为“routes”的表,其中包含以下字段
身份证 路线类型 用户身份 标题 说明
另一个名为“route_dots”的表包含所有路线的所有坐标,每条路线都有不同的路线 ID
身份证 route_id 纬度 液化天然气
在其他网站上,我找到了一个解决方案,我可以生成一个 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”值。
如何做到这一点?你能帮我写代码吗?
谢谢
【问题讨论】:
-
只是好奇:每条折线中点的顺序存储在哪里?如果答案是它与点(或 route_dots)表中这些点的顺序相同,AFAIK 查询结果出现的顺序不能保证与表中行的顺序相同。除非我对 MySQL 有什么不了解的地方。您可能需要在 route_dots 表中添加“route_index”列或其他内容。
-
有一个在developers.google.com/maps/articles/v2tov3?hl=en#overlays处显示折线的示例。您为什么不尝试根据该模式工作,然后更具体地告诉我们您需要帮助的地方。
标签: php javascript database google-maps