【问题标题】:"leaflet" How do I store and retrieve (search for) markers using a MySQL database?“传单”如何使用 MySQL 数据库存储和检索(搜索)标记?
【发布时间】:2014-01-25 20:48:17
【问题描述】:

我在这个项目上遇到了困难:https://groups.google.com/forum/#!topic/leaflet-js/Vl56hyRp1i8

我希望你们能帮助我完成最后一步。

会有数十万个标记,但只会显示您搜索的那个。工具提示的内容必须通过表单提交。在渲染马赛克之前,我不会知道标记的位置。

一旦马赛克被渲染,我们就有了标记的位置,我需要能够搜索任何标记(通过它的 ID)并在显示标记和它的工具提示时缩放+平移到它。

例如,如果我想制作 500x500 图片的马赛克,将会发生以下情况:

  • 我们等待用户每人提交一张图片,直到我们有 250.000 张图片。
  • 工具提示元内容将与用户的每张图片一起提交(每个用户 1 张图片) - 这也是生成标记 ID 的时间
  • 现在我们有 25 万张图片,我们可以渲染马赛克,马赛克完成后,我将有一个文本文件,其中包含每张图片的名称和位置(按行+列)
  • 我需要用这个文件为每个用户的图片填写标记的位置
  • 之后我需要能够仅显示您搜索的标记
  • 当您搜索标记时,它将通过它的 ID 进行搜索,因此它会准确无误,并且我需要在此处使用缩放+平移功能
  • 当您单击图片(标记)时,我需要显示该标记(取消隐藏工具提示)。

如果有人可以帮助我,这个项目非常酷,我不想被卡住。我会给予适当的信用和东西。如果你真的很好,我什至会考虑金钱奖励。

谢谢。

【问题讨论】:

  • 永远不要在数据库中存储 HTML!
  • 它不是真正的 HTML,我认为它主要是纯文本,但也许我还需要存储图像。
  • 图像可能只需要存储一个链接引用。

标签: mysql database tooltip leaflet markers


【解决方案1】:

我建议遵循这个工作流程:

  1. 对于数据绘制和编辑,我使用 Leaflet 插件 leaflet.draw - .
  2. 对于以 GeoJSON 格式存储数据,我使用 Leaflet 函数 toGeoJSON();像那样var myMarkers = new L.FeatureGroup(); map.addLayer(myMarkers); .... // get json var myMarkersJson = myMarkers.toGeoJSON();
  3. myMarkersJson 我上传到 MySQL 数据库并将数据存储为 json。您可以阅读有关使用 js/jquery here 将 json 发送到 MySQL 的更多信息。
  4. 我使用 jQuery parseJSON 分析数据
  5. 为了将 json 数据再次上传到传单地图,我使用传单函数 geoJSON();

我认为这个工作流程是在 MySQL 传单中存储、搜索和显示数据的最简单方法。但这种方案可能不适用于大数据分析。

【讨论】:

  • 感谢您的提示,您有这方面的实际例子吗?我很想真正看到源代码或详细的教程。不幸的是,我没有使用leaflet.draw,但是到目前为止,每个人都一直在说要以某种方式使用json。不知道如何:|
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-28
  • 1970-01-01
相关资源
最近更新 更多