osmconvert - как сохранить мультиполигоны, не попавшие в область

Ну кстати я тоже пытался сделать самопальные тайлы и ничего путней чем БД->SHP->JSON->MbTiles не подошло.

Работайте каскадно - осмконвертом на крупные куски, а на мелкие уже самописно и аккуратно.

Так и сделано. Но, видимо, крупные куски недостаточно крупные. Будем делать крупнее.

Я тут еще одну офигенную вещь придумал: отрендерить мир в картинку такого размера, чтобы каждый пиксель соответствовал размеру тайла в том масштабе, в котором я работаю. И при нарезании по цвету пикселя определять воду/пустыню/чё там ещё.

тогда проще пройтись по полигонам и в отдельные таблицы для каждого z** накидать значений тегов полигонов, если ячейка-тайл полностью влезает в полигон. будет тоже самое, но без растровых преобразований туда-обратно.

Я крупные куски нарезаю по границам + % к ним, ключ --offset 0.1 для getbound.

Доброго дня!
А есть ли у кого osmconvert для Windows x64, который:

  1. Умеет обрабатывать файлы .pbf размером более 2 гигов
  2. Нормально отрабатывает опции -complete-ways и - complex-ways
  3. Будучи запущенный osmupdate 'ом не ругался на невозможность получить требуемую память (could not get 183500800 bytes of memory).

Найденные мной два исполняемых файла умеют один - только п.2, другой - только п.3. Пункт 1 - не умеют оба.

Помогите плиз.

http://wiki.openstreetmap.org/wiki/Osmconvert

Может попробовать Linux on Windows?
Там можно запускать linux-овые программы из под виндовс и наоборот: https://msdn.microsoft.com/en-us/commandline/wsl/interop

Сергей, я это читал. И в гугле искал…
Вот мне удивительно - а неужели нельзя собрать osmconvert с правильной zlib? Если эта проблема известна давно?
а linux on windows мне уже советовали в ветке про osm2mp. Нужна Win10 - а я еще не разобрался, что там у нее с активацией. А Win7 была запасная. Она и стоит сейчас.

Тоже искал, нет полноценной 64бит версии.

Если версия не Pro и не Corporative то Linux для Windows не попробуешь, проверено. А так 7ку можно обно вить до 10ки соответствующей редакции абсолютно бесплатно, правда сейчас с небольшим обманом (через обновление для людей с ограниченными возможностями), но версия будет полностью лицензионная. :slight_smile:

попробуй https://yadi.sk/d/I2r6n2-Y3LAwDT

gryphon
Спасибо, смогу попробовать завтра. О результате отпишусь.

У меня такую ошибку выдаёт

че-то я не смог слинковать нормально

ну да ладно, вот библиотека, надо кинуть в папку с утилитой https://yadi.sk/d/5xKkjET-3LB5aZ

Подкинул dll`ку, к сожалению не работает в батнике вместо 32бит версии.
PS: Батник с такими ключами:
osmconvert OSM.pbf -B=RU-MOW.poly -v --drop-author --emulate-osmosis --complete-ways --complex-ways -o=RU-MOW.osm

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

Нет просто нет osm файлов на выходе.


osmconvert Parameter: CFO.pbf
Read-opening: CFO.pbf
Read-opening: increasing gzbuffer.
osmconvert Parameter: -B=RU-MOW.poly
- 0 379480000,555747000,379912000,555695000
cut
- 189 371217000,558466000,371224000,558480000
- 190 371224000,558480000,371231000,558466000
Border polygons: 191. Now sorting.
> 0 366419000,554629000,366987000,555613000
+ add to chain of 1
+ add to chain of 2
+ add to chain of 3
+ add to chain of 4
+ add to chain of 5
> 1 366419000,554629000,366798000,554250000
+ add to chain of 0
+ add to chain of 2
+ add to chain of 3
+ add to chain of 4
> 2 366495000,553790000,367063000,553508000
+ add to chain of 3
+ add to chain of 4
+ add to chain of 5
+ add to chain of 6
> 3 366495000,553790000,366810000,554002000
+ add to chain of 2
+ add to chain of 4
cut
+ add to chain of 189
+ add to chain of 190
> 187 381065000,557003000,381290000,557205000
+ add to chain of 188
+ add to chain of 189
+ add to chain of 190
> 188 381065000,557003000,381092000,556976000
+ add to chain of 187
> 189 381216000,557247000,381359000,557398000
+ add to chain of 190
> 190 381216000,557247000,381290000,557205000
+ add to chain of 189
Chains:
> 0 366419000,554629000,366987000,555613000
  1 366419000,554629000,366798000,554250000
> 1 366419000,554629000,366798000,554250000
cut
> 189 381216000,557247000,381359000,557398000
  186 381049000,557501000,381359000,557398000
  187 381065000,557003000,381290000,557205000
  190 381216000,557247000,381290000,557205000
> 190 381216000,557247000,381290000,557205000
  186 381049000,557501000,381359000,557398000
  187 381065000,557003000,381290000,557205000
  189 381216000,557247000,381359000,557398000
End of border initialization.
osmconvert Parameter: -v
osmconvert Error: unrecognized option: -v
Read-closing: CFO.pbf

А ошибка вас не смущает :slight_smile:

Попробовал без ключа -v, файл создаётся, но почему то не удаляются временные файлы osmconvert_tempfile.*


End of border initialization.
osmconvert Parameter: --drop-author
osmconvert Parameter: --emulate-osmosis
osmconvert Parameter: --complete-ways
osmconvert Parameter: --complex-ways
osmconvert Parameter: -o=C:\Russia\Maps\osm\RU-MOW.osm
osmconvert: zlib 1.2.8 flags: 00000065
Write-opening: C:\Russia\Maps\osm\RU-MOW.osm
Tempfiles: osmconvert_tempfile.10288.*
osmconvert: File timestamp: 2017-07-18T20:43:02Z
osmconvert: changing dependencystage from 0 to 11.
osmconvert: changing dependencystage from 11 to 12.
osmconvert: changing dependencystage from 12 to 22.
Write-opening: osmconvert_tempfile.10288.1
Write-opening: osmconvert_tempfile.10288.1
osmconvert: changing dependencystage from 22 to 32.
osmconvert: String table index restart 1
osmconvert: String table index restart 2
osmconvert: String table index restart 3
osmconvert: String table index restart 4
osmconvert: String table index restart 5
osmconvert: String table index restart 6
osmconvert: String table index restart 7
Write-opening: stdout
Write-reopening: C:\Russia\Maps\osm\RU-MOW.osm
Write-closing FD: 7
Interrelational hierarchy 1: 57 dependencies.
Interrelational hierarchy 2: 0 dependencies.
osmconvert: changing dependencystage from 32 to 33.
Read-opening: osmconvert_tempfile.10288.1
Read-opening: increasing gzbuffer.
osmconvert: Not a standard .o5m file header osmconvert_tempfile.10288.1
osmconvert: File timestamp: 2017-07-18T20:43:02Z
Relation hierarchies: 1 of maximal 12.
osmconvert: Last processed: relation 7403047.
Read-closing: osmconvert_tempfile.10288.1
Read-closing: CFO.pbf
Write-closing FD: 4
Write-closing FD: 4

Это нормально. Файлы не удаляются, т.к. включено логирование. Если будет работать с большими файлами и complete/complex-ways, можно будет собрать в нормальном виде.

А какие дополнительные дефайны добавляли, типа _LARGEFILE64_SOURCE ?