Конвертер OSM -> MP

не, я про полную россию :slight_smile:
http://gpsmapsearch.com/osm/mp/__russia.mp.rar
она, правда, режется на случайные квадраты, но сквозной роутинг и общий поиск неплохо работают

Ну к цельной карте претензий нет. Я про соприкосновение отдельных регонов. :slight_smile:

А у меня есть - хочу нормальную воду!! :slight_smile:

Леша уже писал, что нашел, где бага. Разве не исправил?

Блин. “Бага” в том, что надо скрипт запускать на отсечение объектов карты границей области, пусть даже и прямоугольником (см. msk_clip). Сие есть весьма ресурсоемкая задача. :slight_smile: Если устаканится выкачивание СЗФО, постараюсь “взять на себя” и отсечение этих областей, тогда и вожделенная вода появится в наших краях.

Объясните дураку:
Ну вот получил я файл с расширением Xml
Как из него получить Osm?
Или это одно и тоже?

Одно и то же

Сделал библиотечку для проверки попадания точки в полигон на основе B-дерева :sunglasses:
Правда, работает только с недырявыми полигонами.

Проверка миллиона точек с полигоном из 1000 рёбер заняла ~40 секунд (P3-3000).
Буду прикручивать к конвертеру :slight_smile:

Леш, а оно только к перлу прикручивается? А то мы с Кексиной бьемся над этой задачей, только он под Vb, а я под пхп…

ну я делал на перле, поэтому только перл :slight_smile:
пока вот: http://gpsmapsearch.com/osm/PolygonTree.pm

Т.е. уже можно рисовать границы краев и областей, дабы потом по ним пилить карты? :slight_smile:

Пилить-то давно можно: http://forum.openstreetmap.org/viewtopic.php?pid=29841#p29841
Просто раньше это было ООЧЕНЬ медленно

Ууууу… Она еще и кучу перловых приблуд юзает :frowning: Блин, ну не осваивать же ради этого перл с нуля :frowning: Лучше Постгисом займусь…

Ну а теперь быстро, что не может не радовать. :slight_smile:

ОФФ. Люди, а подскажите, вожно ли вызвать из пхп-скрипта перловый скрипт, который воспользуется этой библиотекой? То есть передать перловому скрипту данные и получить от него результат?

Конечно можно, надо на perl-е написать обертку к библиотеке, которая будет читать из STDIN координаты и отвечать в STDOUT попал/не_попал.

Ой… А не мог бы кто-нибудь помочь с этим? А то у меня с перлом ну вообще никак :frowning:

Сделаю, когда liosha воткнет этот модуль в osm2mp. Нужен пример использования.

Заранее огромное спасибо!

а там всё просто:

# подключаем библиотеку
use PolygonTree;

# создаём объект
my $bound = PolygonTree->new( [ [0,0], [2,0], [2,2], ........ ] );

# проверяем вхождение
if ( $bound->contains( [1,1] ) ) { 
......
}