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

2022-08-31 01:07:25

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

最好的,红鲨1802

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


答案 1

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

这里的基本方法是:

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

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


答案 2

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

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

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