2

我有一个包含大约 10 个表的数据库,它们都以某种方式相互连接(外键、关联表)。

我想使用所有这些数据在我的谷歌地图实例上绘制它作为带有信息框的标记,并能够过滤地图。

Google Maps Articles来看,您必须将 XML 与数据库中的数据一起使用来绘制标记和其他所有内容。

但是生成该 XML 文件的正确方法是什么?在加载网页和地图时,有一个巨大的 SQL 语句来生成一个包含所有表的全部数据的 XML 文件,还是有更正确的方法?

4

3 回答 3

3

您绝对不必使用 XML 在 Google 地图的实例上放置标记。你可以,但如果它看起来很困难,你不必这样做。我经常使用 Google Maps V3 API,我建议您将数据导出为 JSON 并使用 PHP 将其嵌入到您的文档中,或者使用 Ajax 使其可供 JavaScript 加载。

从数据创建交互式标记非常容易。您只需要遍历您的数据,为您想要在地图上的每个点创建一个 Marker 对象,提供一些您希望在信息窗口中显示的 HTML,并在 Marker 的点击事件中显示该信息窗口。

我将向您推荐 Google Maps API v3 初学者教程,而不是用茶匙的准确性指导您,其中包括如何创建标记并将其显示在地图上的示例。

有趣的是,您可以控制为每个标记显示哪个图标(您可以为所需的任何图像提供 URL),以及使它们反弹。总而言之,使用 JavaScript 比使用 XML 拥有更多的控制权。

关于性能,我会听取 cilosis 的建议,并以您最终选择的任何格式缓存您的 MySQL 数据。如果你要使用 JSON,你也可以缓存它的结果。您可以简单地将输出保存在名为“mysql-export-1335797013.json”之类的文件中。该数字是一个 Unix 时间戳,您可以使用它推断何时需要刷新数据。

于 2012-04-30T20:38:09.233 回答
2

一次使用 SQL为特定查询生成 XML,然后缓存该 XML 输出以供以后使用。第一次它可能很慢,但之后它已经生成并且会非常快。

于 2012-04-30T20:33:23.760 回答
1

如果您想使用 XML,因为 PHP 和 AJAX 使其相对容易,那么就这样做。这就是示例使用它的原因。但是您绝对不限于 XML。JSON 是常用的,因为它也很容易与 PHP 一起使用,下载量比 XML 小,并且以 Javascript 可直接使用的形式交付。或者您可以使用任何其他可以由您的页面的 Javascript 操作的东西。

至于是否使用一个庞大的查询和数据下载,您也不必这样做。你可以这样做:它可能很慢——不仅要进行查询,还要传输数据,缓存查询结果无济于事。您的用户将不得不等待数据到达,然后由您的 Javascript 操作以显示在地图上。

您可能会考虑执行一个相当简单的查询来获取要显示的基本数据,以便用户可以合理地快速查看某些内容,然后进行更多查询,也许是需要数据。如果用户不打算单击并查看它,那么下载大量 InfoWindow 数据是没有意义的。在这种情况下,提供标记数据和基本信息窗口数据,并且仅在用户实际请求时才获取详细数据(即,使用两阶段信息窗口)。

于 2012-05-01T06:38:58.990 回答