Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
 Re: Карта города  [new]
InterSky
Member

Откуда:
Сообщений: 571
asutp2
мы тебе конечно сочувствуем, что ты всего лишь в 30 лет уже не можешь

Это недавно вышедшему на тот момент Windows 3 всего лишь 30 лет, а мне намного больше...
И я не сказал что не могу, я сказал что не взялся бы из-за того обременён другими вещами. Кажется, заберите меня в другой мир, где я никому ничего не должен, и я создам не хуже. И ещё сказал, что опыт предыдущих ошибок заставляет продумывать их наперёд... Видел когда-нибудь, как дети делают свои первые шаги? Они не знают что НЕ умеют! Они начинают идти, падают, плачут, забывают, и опять идут. А вот если бы знал что упадёт? Уже не шёл бы так смело и дерзко. Он бы всё равно научился ходить, но сделал бы это куда позже...

Этим я лишь хотел сказать, что у автора всё получится, абсолютно без сторонних компонентов и даже без особого знания Delphi, надо только 2 вещи - свобода и НЕзнание (свобода пока ты юн, дерзость от незнания)
2 июл 19, 18:46    [21919359]     Ответить | Цитировать Сообщить модератору
 Re: Карта города  [new]
asutp2
Member

Откуда: Тюмень
Сообщений: 510
ну вы же сами же писали (видимо на основании своего личного опыта?), цитирую:

InterSky>>> Если ему лет 15-18 - то он точно сделает, а если старше 30 то не сделает
2 июл 19, 18:56    [21919369]     Ответить | Цитировать Сообщить модератору
 Re: Карта города  [new]
Dimonka
Member

Откуда:
Сообщений: 1179
InterSky
Да по большому счёту - и всё. Карту оцифровал, создал её в векторный аналог (при этом слово "вектор" узнал значительно позже). А что ещё надо? Потом и улицы появились, как отдельные НЕзамкнутые объекты не требующие отрисовки (точнее там отрисовка ещё сложней, надо буквы под разными углами писать с определённой переодичностью), но всё это дописывалось за несколько минут.
Да всё это понятно. Состряпать-то многое можно. Просто в те стародавние времена программирование было шаманством и если что-то немного заработало - все радовались и пытались пользоваться, привыкая ко всем неудобствам и странным ограничениям (типа вот это не трогайте, а то всё упадёт и совсем сломается).

Сейчас софт стал немного другим и наколенные карты скорее всего никому уже не впаришь.
3 июл 19, 11:45    [21919692]     Ответить | Цитировать Сообщить модератору
 Re: Карта города  [new]
Molochnik
Member

Откуда:
Сообщений: 130
InterSky,
Очень познавательно, но ко мне отношения не имеет, хотя мне и существенно больше 30. С каждым годом я чувствую (по крайней мере пока), что программирую все лучше, поскольку довольно часто приходится править старый код и каждый раз вижу что был идиотом. Герой романа Лема "глас господа" математик сказал, что он проверяет свой интеллект перечитывая свои старые книги и если находит в них ошибки, то все в порядке, а если охватывает чувство восторга - пищи пропало.
Но вы правы, рисовать карту сам я точно не буду, даже за халявные тыщу баксов, поскольку жалко времени заниматься ерундой.
3 июл 19, 11:50    [21919699]     Ответить | Цитировать Сообщить модератору
 Re: Карта города  [new]
a.t
Member

Откуда:
Сообщений: 1
для получения osm-данных на постоянной основе в удобоваримом для гис-софта виде:

  • если территория большая - проще всего будет поднять свой сервак postgress
    как это было у gis-lab до недавнего времени
    + примерное описание процесса оттуда

    Описание несколько упрощенное, однако в таком виде несколько проще понять суть происходящего:

    Первоначально:

    Из дампа planet вырезается все необходимое покрытие (local).
    Из local вырезаются все необходимые страны.
    Ежедневно:

    Дамп local обновляется ежедневными diff-файлами, затем повторно обрезаeтся.
    Из предыдущей и текущей версии local создается отдельный diff-файл.
    Страны, для которых существует предыдущая версия, обновляются diff-файлом, полученным в п.2, и обрезаются в соответствии с poly-файлом страны/региона.
    Страны, для которых не существует предыдущей версии, вырезаются из local при помощи соответствующего poly-файла.
    В качестве промежуточного формата используется osm.pbf, который затем конвертируется в osm.bz2.
    . только вместо planet использовать данные отсюда

  • если территория сравнительно невелика - воспользоваться связкой overpass-turbo -> (OSM xml) -> ogr2ogr -> бд postgress.
    + примеры
  • запрос на получение данных по автодорогам у overpass (по текущим границам карты)
    <!--
    This has been generated by the overpass-turbo wizard.
    The original search was:
    “highway=* and highway!=footway and highway!=pedestrian and -highway!=path”
    -->
    <osm-script output="json" timeout="25">
      <!-- gather results -->
      <union>
        <!-- query part for: “highway=* and highway!=footway and highway!=pedestrian and "-highway"!=path” -->
        <query type="node">
          <has-kv k="highway"/>
          <has-kv k="highway" modv="not" v="footway"/>
          <has-kv k="highway" modv="not" v="pedestrian"/>
          <has-kv k="-highway" modv="not" v="path"/>
          <bbox-query {{bbox}}/>
        </query>
        <query type="way">
          <has-kv k="highway"/>
          <has-kv k="highway" modv="not" v="footway"/>
          <has-kv k="highway" modv="not" v="pedestrian"/>
          <has-kv k="-highway" modv="not" v="path"/>
          <bbox-query {{bbox}}/>
        </query>
        <query type="relation">
          <has-kv k="highway"/>
          <has-kv k="highway" modv="not" v="footway"/>
          <has-kv k="highway" modv="not" v="pedestrian"/>
          <has-kv k="-highway" modv="not" v="path"/>
          <bbox-query {{bbox}}/>
        </query>
      </union>
      <!-- print results -->
      <print mode="body"/>
      <recurse type="down"/>
      <print mode="skeleton" order="quadtile"/>
    </osm-script>
    

  • примерная команда ogr2ogr для конвертирования osm -> postgis.
    ogr2ogr -f PostgreSQL "PG:dbname=osm" import.pbf -lco COLUMN_TYPES=other_tags=hstore
    

  • использование ogr2ogr напрямую (файлы *.pbf) также возможно но долго работает и требует постобработки данных в бд (проблемы с атрибутикой/отсечение ненужных данных).

    получившиеся данные открывать MapWinGis как уже было упомянуто. либо используя свой велосипед и обертки для gdal/ogr на паскале.
  • 3 июл 19, 12:20    [21919732]     Ответить | Цитировать Сообщить модератору
     Re: Карта города  [new]
    Molochnik
    Member

    Откуда:
    Сообщений: 130
    Спасибо все кто дал дельные советы, очень помогли.
    Решил делать так:
    1) Использовать Open street maps - очевидное решение.
    2) Использовать библиотеку readosm на C вместо актив икс или дельфийских компонент и сделать на ее основе свою DLL. Readosm очень проста, имеет отличную документацию и читает как osm так и pbf напрямую. Когда все сделаю расскажу про результат.
    8 июл 19, 11:14    [21922525]     Ответить | Цитировать Сообщить модератору
    Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
    Все форумы / Delphi Ответить