【问题标题】:Loading Polylines coordinates from database and displaying it in a map从数据库加载折线坐标并将其显示在地图中
【发布时间】: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


【解决方案1】:

您可以使用一组 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

【讨论】:

  • 我想做的是从 mysql 数据库中获取那组 lat/lng 并将它们作为折线显示在地图上
  • 一旦你生成了所有 lat/lng 的 JSON,你应该像上面的 flightPlanCoordinates 这样构造一个数组并继续。
  • 谢谢,你能举个例子说明我是如何构造那个数组的吗?假设 getjson.php 在 www.mydomain.com/getjson.php 上,它包含从数据库中获取的所有 lat/lng,特别是我想知道的是如何让地图自动读取该文件并放置标记?这可能吗?
猜你喜欢
  • 2021-12-30
  • 1970-01-01
  • 2013-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多