Добавление статической сетки 1 км к картам google с использованием php

Я хочу создать сетку, на которой я буду накладывать карты Google. Сетка должна быть статичной, то есть сетка 1 км² должна быть точно в одном месте и должна быть идентифицирована с уникальным идентификатором. Как я могу достичь этого на картах google и php?

Лучшее, redshark1802

edit: Забыл упомянуть, что мне нужно взаимодействовать с этими сетками direclty, что означает изменение цвета/стиля для каждого поля. Я нашел сайт, который сделал это уже https://ownthisworld.com/

Ответы

Ответ 1

Ответ на ваш вопрос можно найти в API Карт Google (v3).

Основной подход здесь:

  • Найти границы карты, используя метод getBounds() объекта Map. Результатом является объект LatLngBounds, из которого вы можете извлечь координаты широты и долготы углов карты.
  • Вычислить расстояние в килограммах между севером и югом, а также к западу и востоку от карты. Используйте это расстояние, чтобы определить, сколько линий (с расстоянием 1 км) следует рисовать.
  • Нарисуйте сетку в форме PolyLines, которые позволяют несколько options, например, цвет и ширина.
  • Если вы также хотели бы нарисовать прямоугольники с привязанными к ним событиями (как в вашем примере), вы можете использовать Rectangle с определенным options. Вы можете связать события 'click' с этими прямоугольниками, чтобы вы могли взаимодействовать с ними. Или вы можете использовать координаты щелчка мыши на карте, чтобы определить, какой квадрат был нажат.

Дополнительная информация: Если вы знаете, где рисовать сетку, вы также знаете, где рисовать прямоугольники, поскольку края прямоугольников являются в основном линейными сегментами линий сетки. Итак, как вы знаете, где рисовать линии сетки? Если вы выберете стандартную нулевую точку (например, точку, где встречается экватор и первый меридиан), и в основном начните рисовать линии сетки оттуда, вы всегда будете иметь линии сетки (и, следовательно, прямоугольники), расположенные в одном месте. Обратите внимание: вы рисуете только те линии сетки, которые находятся в пределах границ карты. Таким образом, довольно легко идентифицировать прямоугольник, например, в верхнем левом углу... он всегда будет находиться в одной и той же позиции.

Ответ 2

Возможно, эти примеры помогут: this - сетка фиксированного размера - поместите его в NW latlng и размер его с помощью переменных высоты и ширины

this - это сетка, которая изменяет размеры и перемещается, чтобы покрыть область карты (более или менее)

оба из них сохраняют прямоугольники в массиве rectArr, поэтому вы можете манипулировать их параметрами и т.д., обратившись к этому.

Ответ 3

Вы хотите четырехъядерную клавиатуру. Geohash использует подобную систему. Вы можете найти L-систему для записи кривой z или вы можете захватить мой код на phpclasses.org(кривая гильберта). Вот хороший учебник о том, как он работает: http://blog.notdot.net/2009/11/Damn-Cool-Algorithms-Spatial-indexing-with-Quadtrees-and-Hilbert-Curves.