Как я могу преобразовать карту в 10-мильные квадратные плитки и узнать, в какую плитку входит лат / лонг?

Это оказывается сложнее, чем я думал... проекции карт, координаты меркатора, что-то в EPSG:4326 и так далее.

Что я хочу сделать.

  1. По заданному лату долго находить, к какой плитке они относятся.
  2. Учитывая плитку найти свои границы в лат, долго.
  3. Плитка должна быть длиной ~ 10 миль.

Я не могу просто разделить широту / долготу на какое-то число, чтобы получить 10-мильные плитки, поскольку расстояние между долготой меняется от экватора к полюсам.

Если я отпущу идею о 10-мильном блоке и просто катлюсь с виртуальными блоками, тогда все в порядке.

Пробовал Глядя на то, как это делает Google Maps, это не имело смысла.

Они в основном как-то конвертируют lat/long в 0-256, 0-256. Затем возьмите вычислить какое-то значение, называемое значением пикселя, не уверенный, что это такое, coords * 2 ^ zoom level, Затем разделите его на 256, чтобы получить номер плитки.

1 ответ

Если вы работаете со сферическими координатами, у вас должен быть третий параметр - радиус. Сначала вы должны сделать сетку своей карты, плоскости, квадрата, параметрического уравнения и т. Д.... в радиусе, в котором вы должны знать тройной интеграл вашей трехмерной плоскости. в противном случае взгляните на это изображение: Фи = лат и т. Д

Я предлагаю вам использовать sageMath, это библиотека python для математических вычислений, очень полезная для просмотра ваших математических работ.

Вывод: Получите площадь плоскости, скомпонуйте ее с параметром единиц ( 1 см, 1 м, 1 км и т. Д.), Посмотрите, подходят ли плитки в 10 миль в вашем районе.

Другие вопросы по тегам