Как я могу преобразовать карту в 10-мильные квадратные плитки и узнать, в какую плитку входит лат / лонг?
Это оказывается сложнее, чем я думал... проекции карт, координаты меркатора, что-то в EPSG:4326 и так далее.
Что я хочу сделать.
- По заданному лату долго находить, к какой плитке они относятся.
- Учитывая плитку найти свои границы в лат, долго.
- Плитка должна быть длиной ~ 10 миль.
Я не могу просто разделить широту / долготу на какое-то число, чтобы получить 10-мильные плитки, поскольку расстояние между долготой меняется от экватора к полюсам.
Если я отпущу идею о 10-мильном блоке и просто катлюсь с виртуальными блоками, тогда все в порядке.
Пробовал Глядя на то, как это делает Google Maps, это не имело смысла.
Они в основном как-то конвертируют lat/long в 0-256, 0-256. Затем возьмите вычислить какое-то значение, называемое значением пикселя, не уверенный, что это такое, coords * 2 ^ zoom level
, Затем разделите его на 256, чтобы получить номер плитки.
1 ответ
Если вы работаете со сферическими координатами, у вас должен быть третий параметр - радиус. Сначала вы должны сделать сетку своей карты, плоскости, квадрата, параметрического уравнения и т. Д.... в радиусе, в котором вы должны знать тройной интеграл вашей трехмерной плоскости. в противном случае взгляните на это изображение:
Я предлагаю вам использовать sageMath, это библиотека python для математических вычислений, очень полезная для просмотра ваших математических работ.
Вывод: Получите площадь плоскости, скомпонуйте ее с параметром единиц ( 1 см, 1 м, 1 км и т. Д.), Посмотрите, подходят ли плитки в 10 миль в вашем районе.