Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从数据库加载多段线坐标并在地图中显示_Php_Javascript_Database_Google Maps - Fatal编程技术网

Php 从数据库加载多段线坐标并在地图中显示

Php 从数据库加载多段线坐标并在地图中显示,php,javascript,database,google-maps,Php,Javascript,Database,Google Maps,首先,我是Google Maps API开发的初学者,我想知道在地图中显示由多段线组成的路线的最佳方式是什么,多段线的坐标来自mysql数据库中的表 数据库有一个名为“routes”的表,其中包含以下字段 身份证 路线类型 用户id 标题 描述 另一个名为“route_dots”的表格包含所有路线的所有坐标,每条路线都有不同的路线ID 身份证 路线号 拉特 液化天然气 在其他网站上,我找到了一个解决方案,我可以生成一个JSON文件,其中包含路线的所有信息,如LAT和LNG坐标、标题、描述,然后让

首先,我是Google Maps API开发的初学者,我想知道在地图中显示由多段线组成的路线的最佳方式是什么,多段线的坐标来自mysql数据库中的表

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

身份证 路线类型 用户id 标题 描述

另一个名为“route_dots”的表格包含所有路线的所有坐标,每条路线都有不同的路线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,但我的问题是,如何在地图中显示所有这些信息(绘制为多段线的路线,带有包含标题和说明的信息窗口?应注意,数据库中存储的每个lat/lng坐标都有一个名为“路线id”的字段,该字段的值可以是a、B或C。我想在地图中显示不同的路线,每个路线对应一个不同的“路线id”值

这是怎么做到的?你能帮我写代码吗


谢谢

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

只是好奇:每个多段线中点的顺序存储在哪里?如果答案是这些点在点(或布线点)中的顺序相同表,请注意,查询结果的显示顺序不能保证与表中的行顺序相同。除非我对MySQL有什么不了解。您可能需要添加“路由索引”列或其他内容到route_dots表中。有一个在处显示多段线的示例。您为什么不尝试基于该模式工作,然后让我们更具体地知道您需要帮助的位置。我想做的是从mysql数据库中获取lat/lng集,并在使用所有l生成JSON后将其作为多段线显示在地图上在/lng上,您应该构建一个类似上面的
flightplancordinates
的数组,然后继续。谢谢,您能给我一个如何构建该数组的示例吗?让我们假设getjson.php位于www.mydomain.com/getjson.php上,其中包含从数据库获取的所有lat/lng,具体地说,我想知道的是如何让地图自动运行读一下那个文件,然后放上标记?可能吗?