繁体   English   中英

使用php向谷歌地图添加静态1公里网格

[英]adding a static 1km grid to google maps using php

我想创建一个覆盖谷歌地图的网格。 网格必须是静态的,这意味着 1km² 的网格必须完全位于同一位置,并且必须使用唯一的 id 进行识别。 我怎样才能在谷歌地图和 php 中实现这一点?

最好的,redshark1802

编辑:忘了提到我必须直接与这些网格交互,这意味着更改每个字段的颜色/样式。 我发现一些网站已经做到了https://ownthisworld.com/

您的问题的答案可以在Google Maps API (v3) 中找到

这里的基本方法是:

  1. 使用Map 对象的 getBounds() 方法查找地图的边界。 结果是一个LatLngBounds 对象,您可以从中提取地图角点的纬度和经度坐标。
  2. 计算地图南北之间、西部和东部之间的距离(公里)。 使用此距离来确定您应该绘制多少条线(距离为 1 公里)。
  3. PolyLines的形状绘制网格,允许设置一些选项,例如颜色和宽度。
  4. 如果您还想绘制绑定了事件的矩形(如您的示例中所示),您可以使用带有某些选项Rectangle 您可以将“单击”事件绑定到这些矩形,以便您可以与它们进行交互。 或者您可以使用鼠标在地图上单击的坐标来确定单击了哪个方块。

扩展信息:如果您知道在哪里绘制网格,您也知道在哪里绘制矩形,因为矩形的边缘基本上是网格线的线段。 那么你怎么知道在哪里绘制网格线呢? 如果您决定一个标准的零点(例如赤道和本初子午线相交的点),并基本上从那里开始绘制网格线,您将始终将网格线(以及矩形)定位在同一位置。 请注意,您只能绘制那些在地图边界视图内的网格线。 这样也很容易识别一个矩形,例如它的左上角......它总是位于相同的位置。

也许这些例子会有所帮助:是一个固定大小的网格 - 使用 NW latlng 定位它并使用高度和宽度变量调整它的大小

是一个调整大小并移动以覆盖地图区域的网格(或多或少)

它们都将矩形存储在 rectArr 数组中,因此您可以通过访问它来操纵它们的选项等。

你想要一个四键。 Geohash 使用类似的系统。 您可以寻找一个 L 系统来编写 az 曲线,或者您可以在 phpclasses.org(希尔伯特曲线)上获取我的代码。 这是关于它如何工作的很好的教程: http : //blog.notdot.net/2009/11/Damn-Cool-Algorithms-Spatial-indexing-with-Quadtrees-and-Hilbert-Curves

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM