使用php为谷歌地图添加静态1km网格

red*_*802 15 javascript php api google-maps

我想创建一个网格,我将覆盖谷歌地图.网格必须是静态的,这意味着1平方公里的网格必须完全位于同一位置,并且必须使用唯一的ID进行识别.我怎样才能在谷歌地图和PHP中实现这一目标?

最好的,redshark1802

编辑:忘了提到我必须与这些网格direclty进行交互,这意味着要改变每个字段的颜色/样式.我找到了一些已经做过的网站https://ownthisworld.com/

den*_*isg 10

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

这里的基本方法是:

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

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


luc*_*cas 7

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

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

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


Gig*_*egs 2

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