2

我目前正在做一个项目,用户需要能够将地质数据(例如某个街道名称)输入到网站中,该网站将被放入数据库中,然后检索并显示在谷歌地图上供所有用户查看。

我做了一些研究,到目前为止,看起来最好的方法是使用 PHP 脚本获取数据并将其发送到 MySQL 数据库,然后可以由另一个 PHP 脚本检索它,然后传递给 JavaScript显示在地图上。

从大局来看,这是最好的做事方式吗?

提前致谢!

4

2 回答 2

4

看起来您的问题有几个单独的步骤:

  1. 注册一个 Google Maps API 密钥。

  2. 写一些东西让用户输入地址并将其保存在数据库中。
    2a. 相同的脚本应该使用地理编码将地址转换为坐标。结果也应该(必须)保存在数据库中,因为 Google 每天每个 IP 只接受 15k 的地理编码查询。由于您将保存结果,因此只有在一天内向地图添加超过 15k 项时才会出现问题。

  3. 编写生成地图的脚本。可能有一些很酷的 Google API 调用,如果没有,您将不得不自己做一些工作。使用时间戳缓存地图,以便您可以节省一些处理器/时间。

  4. 创建一个将显示地图的界面,与步骤 2a 集成,并调用步骤 3。

于 2009-02-06T23:16:44.797 回答
1

@Phil 的反应很好。以下是我的一些补充:

谷歌地理编码不必在服务器端完成。15k 限制计入客户端ip 而不是服务器 ip。如果是这样,单个恶意客户端可能会耗尽主机站点的限制并有效地破坏站点的地理编码功能。

http://code.google.com/support/bin/answer.py?answer=93464&topic=12266

在存储 db 结果之前执行地理编码服务器端的一个原因是它可以更容易地验证用户的输入以确保他们输入的地址实际上是可地理编码的。在这种情况下,您将受到 15k 查询主机的限制。如果您将验证代码放在客户端上,您会将请求传播到所有客户端。

有一些漂亮的 Google API 调用。快速浏览文档将揭示一个简单的过程:

  • 从数据库中获取地址
  • 将其地理编码为 GPoint
  • 将地图置于 GPoint 的中心
  • 并可能在 GPoint 上放置一个标记

这些类型的东西在文档中已经完全涵盖了。

http://code.google.com/apis/maps/documentation/examples/

另外,直接回答你的问题。是的,看起来你在正确的轨道上。

于 2009-02-11T04:54:08.017 回答