使用 php/mysql 在 googlemaps 上动态绘制折线

2023-12-05

我是 google 地图 API 的新手。我为我的手机编写了一个小应用程序,可以定期将其位置更新到 SQL 数据库。

我想在我的浏览器中的谷歌地图上显示此信息。理想情况下,我想定期轮询数据库,如果有任何新的坐标到达,请将它们添加到行中。

描述它的最好方式是this.

为了实现这一目标,我开始在谷歌上查找文档并不断修改它们以尝试实现我想要的效果。它不起作用 - 我不知道为什么。我希望得到一些关于原因的建议,并且非常欢迎任何指向我最终目标的指示。 Google 地图 AJAX + MySQL/PHP 示例

   <script type="text/javascript">
  //<![CDATA[

function load() {
  if (GBrowserIsCompatible()) {
    var map = new GMap2(document.getElementById("map"));
    map.addControl(new GSmallMapControl());
    map.addControl(new GMapTypeControl());
    map.setCenter(new GLatLng(47.614495, -122.341861), 13);

    GDownloadUrl("phpsqlajax_genxml.php", function(data) {
      var xml = GXml.parse(data);
      var line = [];
      var markers = xml.documentElement.getElementsByTagName("points");
        for (var i = 0; i < points.length; i++) {
            var point = points.item(i);
            var lat  = point.getAttribute("lat");
            var lng  = point.getAttribute("lng");

            var latlng = new GLatLng(lat, lng);

       line.push(latlng);
       if (point.firstChild) {
         var station = point.firstChild.nodeValue;
         var marker = createMarker(latlng, station);
         map.addOverlay(marker);
       }
     }

     var polyline = new GPolyline(line, "#ff0000", 3, 1);
     map.addOverlay(polyline);
});
}
//]]>

我的 php 文件正在生成以下 XML;

<?xml version="1.0" encoding="UTF-8" ?>
<points>
<point lng="-122.340141" lat="47.608940"/>
<point lng="-122.344391" lat="47.613590"/>
<point lng="-122.356445" lat="47.624561"/>
<point lng="-122.337654" lat="47.606365"/>
<point lng="-122.345673" lat="47.612823"/>
<point lng="-122.340363" lat="47.605961"/>
<point lng="-122.345467" lat="47.613976"/>
<point lng="-122.326584" lat="47.617214"/>
<point lng="-122.342834" lat="47.610126"/>
</points>

我已经成功地解决了这个问题;http://code.google.com/apis/maps/articles/phpsqlajax.html在尝试自定义代码之前。

有什么指点吗?我哪里出错了?


你似乎走在正确的轨道上。

您的 php 脚本应该接受时间戳参数,并且应该检查在该时间戳之后是否已将新点插入到数据库中。如果是,它应该返回包含最新条目的响应(或者如果您想在车辆移动时显示实时轨迹,则返回该时间戳之后的条目列表)。

在客户端,您可能希望使用普通或长轮询,带有上次更新的时间戳参数。

当您的 AJAX 请求从服务器收到新信息时,您只需移动地图上的标记即可。然后使用更新后的时间戳参数发起新的 AJAX 请求。

伪代码示例使用jQuery:

var lastUpdate = '2000/01/01 00:00:00';

function autoUpdate () {
    $.ajax({
       type: "GET",
       url: "phpsqlajax_genxml.php?last_update=" + lastUpdate,
       dataType: 'xml',
       success: function(xmlData) {

          // 1. Check if the xmlData is empty. If not we received 
          //    some fresh data.
          // 2. Update lastUpdate from the xmlData with the timestamp from 
          //    the server. Don't use JavaScript to update the timestamp, 
          //    because the time on the client and on the server will 
          //    never be exactly in sync.
          // 3. Move the markers on Google Map.

          // Relaunch the autoUpdate() function in 5 seconds.
          setTimeout(autoUpdate, 5000);
       }
    });
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 php/mysql 在 googlemaps 上动态绘制折线 的相关文章

随机推荐

  • IBM Worklight 6.1 - “Ecma 错误:TypeError:无法调用对象中的属性

    我正在尝试在 Worklight 适配器示例中运行 Javaworklightadapterproject示例项目 但我在尝试调用过程时遇到错误 errors Ecma Error TypeError Cannot call propert
  • 自 2013 年 2 月 6 日起,通过“feed”连接使用 Graph API 向朋友墙发帖失败

    我的应用程序开始无法在朋友的提要上发布项目 我收到此错误 Facebook request error The operation couldn t be completed facebookErrDomain error 10000 de
  • VBA 的日期无法在 Excel 2011 中运行?

    这是我的代码 我正在尝试 它可以在 PC 上运行 但不能在 Mac 上运行 运行此代码并创建一个 Excel 工作表 命名 添加一个选项卡 更改所述选项卡的颜色 更改所述选项卡 然后转置数据 同时保持单元格的格式以及单元格的宽度和高度到新工
  • “忘记密码”实施的最佳方法? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我正在寻找实现 忘记密码
  • 损坏的 GLSL 自旋锁/GLSL 锁概要

    我有一个设置 需要锁定 读取一些数据 处理 写入一些数据 然后解锁 为此 我制作了一个锁定纹理作为layout r32ui coherent uniform uimage2D 临界区的数据的声明方式类似 不幸的是 我对自旋锁的所有尝试都无法
  • 是否可以从设备 GPS 检索 GPRMC?

    我正在寻找一种从设备 GPS 获取 GPRMC 信息的方法 有可能以任何方式吗 没有公共 API 可从设备的 GPS 芯片检索 GPRMC 最接近的方法是根据 Location API 为您提供的内容构建 GPRMC 句子 以下代码在 Sw
  • Pipeline 上的 Sklearn GridSearchCV 用于测试多个变换和估计器

    我正在尝试使用 Pipeline 构建 GridSearchCV 并且我想测试变压器和估计器 有更简洁的方法吗 pipeline Pipeline imputer SimpleImputer scaler StandardScaler pc
  • 如何在 Kotlin 中获取随机数?

    一种通用方法 可以像 ruby 一样返回两个参数之间的随机整数rand 0 n 有什么建议吗 我的建议是扩大功能于IntRange创建这样的随机数 0 10 random TL DR Kotlin gt 1 3 一个适用于所有平台的随机数
  • 定义函数并从函数返回函数?

    如何在函数内定义并返回函数 例如 我们有一个类似的函数 float foo float val return val val 现在 需要的是像 bar 这样的函数 typedef float func t float Rubish pseu
  • 在 Prolog 中生成整数的最佳方法

    我想生成整数 并且正在寻找实现此目的的最佳方法 例子 number2 N N 0 N 1 N 2 and so on 现在我只是使用length 2 number2 N length N 但我认为应该有一些更好的方法 无需创建临时列表 我可
  • 根据前一行数据自动计算sql表中的列

    我使用 sql server 作为后端在 asp net c 中开发我的应用程序 现在我需要创建一个带有自动计算列 期末余额 的表 如下所示 Date in stock out stock closing balance 2 3 2013
  • Python 编码风格中的空格

    Python 教程说 在运算符周围和逗号之后使用空格 但不要直接在括号结构内使用空格 a f 1 2 g 3 4 不直接在括号结构内 到底是什么意思 这大概来自于PEP 8 Python 代码风格指南 具体请参阅 表达式和语句中的空格 部分
  • 如何找到元组列表中每个相似条目的平均值?

    我有这个元组列表 Jem 10 Sam 10 Sam 2 Jem 9 Jem 10 如何求每个名字加上的数字的平均值 即用 Jem 存储在一个元组中的所有数字的平均值 然后输出它们 在此示例中 输出将是 Jem 9 66666666667
  • 500 无证错误:在 FastAPI 中返回响应时出现内部服务器错误

    我正在使用 FastAPI 通过 ML 模型进行预测 当我给一个task id and input 应用程序应将其添加到后台任务并相应地返回响应 然而 我得到Error 500当我尝试这样做时 添加后task id globally 它在正
  • 如何处理 URISyntaxException

    我收到此错误消息 java net URISyntaxException Illegal character in query at index 31 http finance yahoo com q h s IXIC My Url htt
  • 通过公式从单元格中提取所需数据

    我一直在使用下面的公式从单元格中提取所需的结果 但现在我试图从单元格中获取更多数据 并且我最终尝试从单元格中获取更多值 但它不起作用 我附上了一张谷歌表格 其中提供了数据和所需的结果以及我的公式 任何帮助将不胜感激 ArrayFormula
  • 在下拉选择中,如何从数据库填写完整的表单字段

    如何根据从下拉列表中选择的值从数据库填写完整的表单输入字段 示例 在应用程序中 通过选择客户名称 它会使用数据库中存储的详细信息填充完整的表单输入字段 Sample Code
  • 在 matlab 中以一般形式绘制二次曲面

    I have Quadric Surface equation 我知道A B C 如何在 matlab 中绘制方程 最好的选择是生成函数的 3D 等高线图 其中函数值为 0 处具有单个等高线 要以合理的精度完成此操作 请在多个点 x y z
  • 让控制台等待用户输入关闭

    我有一个控制台应用程序 在执行其任务后 必须向用户提供反馈 例如 操作完成 或 操作失败 以及详细的错误 问题是 如果我只是 让它运行 输出消息将被打印 但控制台将很快关闭 没有时间阅读消息 据我记得 在 C 中 每个控制台应用程序都会以
  • 使用 php/mysql 在 googlemaps 上动态绘制折线

    我是 google 地图 API 的新手 我为我的手机编写了一个小应用程序 可以定期将其位置更新到 SQL 数据库 我想在我的浏览器中的谷歌地图上显示此信息 理想情况下 我想定期轮询数据库 如果有任何新的坐标到达 请将它们添加到行中 描述它