LINUX.ORG.RU
ФорумTalks

Получить сетку координат из выделения

 


0

1

Кто-нибудь заморачивался с получением сетки координат из выделения на географической карте? Например я выделил мухосранск, а потом выгрузил координаты на которых он расположен с разрешением в 1 секунду.

Ответ на: комментарий от steemandlinux

Координаты - это точка, она не может ничего покрывать по определению. Задействуй мозг и сформулируй мысль так чтобы тебя поняли. Или сразу бери leaflet и клепай на нём то что тебе надо.

slovazap ★★★★★
()
Ответ на: комментарий от steemandlinux

То есть множество точек, входящих в полигон? Ну чувак, это сложная вычислительная задача, но ты справишься. Я пробовал геокодинг на локалхосте гонять, это трындец полный. Посмотри на алгоритмы заливки, к слову, если растеризуешь контур — задача сильно упростится.

bodqhrohro_promo
()
Ответ на: комментарий от bodqhrohro_promo

Короче, у меня родился тупой и эффективный алгоритм. Генеришь растр, сначала по каждому отрезку контура метишь пиксель цветом контура (чекаешь все пересечения границ квадрантов). По ходу дела собираешь координаты описывающего контур прямоугольника (тупо минимумы/максимумы x/y). Дальше идёшь по столбикам, для каждого x чекаешь пикселы от minY до maxY — и заводишь бит-фликер, на случай впуклостей в мухосранске, после каждого массива подряд идущих пикселей контура включаешь/выключаешь сбор заливки. От и усё, но 1) на краях грубовато будет, можно ещё сглаживание какое-то (пиксели контура, которые скраю задело, тоже включать в заливку); 2) я не уверен, что не будет каких-то глюков.

bodqhrohro_promo
()

Координаты — это точка пересечения двух перпендикулярных прямых. Точка имеет размер 0 (ноль). А теперь включи мозг, и посчитай, сколько точек будет в одном квадратном сантиметре? А на 500км²? Hint: их будет соизмеримо одинаковое количество — ∞ (бесконечно).

А как получить центр (не географический, а геометрический) фигуры — это тебе задание на дом.

r3lgar ★★★★★
()
Ответ на: комментарий от bodqhrohro_promo

То есть множество точек, входящих в полигон?

Являющихся его углами?

Ну чувак, это сложная вычислительная задача, но ты справишься.

Не справится, ибо это геометрия, которую ОП либо ещё не проходил, либо всю её пробухал.

если растеризуешь контур — задача сильно упростится

При условии, что точка имеет размер 1/x, где x равно масштабу px:km, иначе читай мой предыдущий комментарий.

r3lgar ★★★★★
()
Ответ на: комментарий от bodqhrohro_promo

собираешь координаты описывающего контур прямоугольника

И письку ты полосатую волосатую получишь, а не свой мухосранск в итоге. Прямоугольники minX,minY,maxX,maxY запоганят тебе контур, слизав из него вогнутости.

r3lgar ★★★★★
()

По-моему автор хочет что-то типа грядки, размером и формой с мухосранск, засаженой координатами как картошкой, квадратно-гнездовым способом, с расстоянием между рядами в 1 секунду.

goingUp ★★★★★
()
Последнее исправление: goingUp (всего исправлений: 1)
Ответ на: комментарий от goingUp

Это самое мне нужно. Потому что лепить код такого образца:

lat_array = np.arange(54.985526, 55.030416, 0.000001)
lon_array = np.arange(82.964426, 83.027426, 0.000001)
lat.append(float(self.secure_random.choice(lat_array)))
lon.append(float(self.secure_random.choice(lon_array)))ъ

крайне геморойно. А например для Волгограда просто нереально.

steemandlinux ★★★★★
() автор топика
Последнее исправление: steemandlinux (всего исправлений: 2)
Ответ на: комментарий от r3lgar

ибо это геометрия

Дискретная геометрия? Хех, ну вай нот.

При условии, что точка имеет размер 1/x, где x равно масштабу px:km

Тебе ж сказано, интервал — секунда. Откуда ты взял ∞?

bodqhrohro_promo
()
Ответ на: комментарий от r3lgar

Ты ж вроде дислексиком не был, почему не можешь дочитать до конца комментарий про фликер?

bodqhrohro_promo
()

мне почему-то кажется что ты хочешь pkk5.rosreestr.ru и немного узнать про строение кадастровых номеров: где там область, где город, где квартал...

Rastafarra ★★★★
()
Ответ на: комментарий от steemandlinux

Это самое мне нужно

Если батч - бери полигоны городов с OpenStreetMap и строй свою сетку. Если по одному, данные для окрестности точки можно загрузить налету из API. Для визуализации и интерактивности, как уже было сказано, Leaflet.

slovazap ★★★★★
()
Ответ на: комментарий от steemandlinux

Нихрена не понял, судя по коду тебе достаточно
lat.append(float(self.secure_random(54.985526, 55.030416)))
lon.append(float(self.secure_random(82.964426, 83.027426)))
и потом округлить до нужного размера сетки

Tark ★★
()
Ответ на: комментарий от bodqhrohro_promo

Тебе ж сказано, интервал — секунда.

Ой, я туда не дочитал, видимо.

Ты ж вроде дислексиком не был, почему не можешь дочитать до конца комментарий про фликер?

Никогда не упарываю один и тот же упорин дважды. В этот раз вот так как-то.

r3lgar ★★★★★
()
Ответ на: комментарий от Tark

Это просто квадрат, годится только для квадратно-гнездовых городов. А мне надо исключить реки и леса.

steemandlinux ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.