RU:Osm2pgsql/o5m

From OpenStreetMap Wiki
Jump to: navigation, search
Доступные языки — Osm2pgsql/o5m
· Afrikaans · Alemannisch · aragonés · asturianu · azərbaycanca · Bahasa Indonesia · Bahasa Melayu · Bân-lâm-gú · Basa Jawa · Basa Sunda · Baso Minangkabau · bosanski · brezhoneg · català · čeština · corsu · dansk · Deutsch · eesti · English · español · Esperanto · estremeñu · euskara · français · Frysk · Gaeilge · Gàidhlig · galego · Hausa · hrvatski · Igbo · interlingua · Interlingue · isiXhosa · isiZulu · íslenska · italiano · Kiswahili · Kreyòl ayisyen · kréyòl gwadloupéyen · Kurdî · latviešu · Lëtzebuergesch · lietuvių · magyar · Malagasy · Malti · Nederlands · Nedersaksies · norsk bokmål · norsk nynorsk · occitan · Oromoo · oʻzbekcha/ўзбекча · Plattdüütsch · polski · português · română · shqip · slovenčina · slovenščina · Soomaaliga · suomi · svenska · Tagalog · Tiếng Việt · Türkçe · Vahcuengh · vèneto · Wolof · Yorùbá · Zazaki · српски / srpski · беларуская · български · қазақша · македонски · монгол · русский · тоҷикӣ · українська · Ελληνικά · Հայերեն · ქართული · नेपाली · मराठी · हिन्दी · भोजपुरी · অসমীয়া · বাংলা · ਪੰਜਾਬੀ · ગુજરાતી · ଓଡ଼ିଆ · தமிழ் · తెలుగు · ಕನ್ನಡ · മലയാളം · සිංහල · བོད་ཡིག · ไทย · မြန်မာဘာသာ · ລາວ · ភាសាខ្មែរ · ⵜⴰⵎⴰⵣⵉⵖⵜ ⵜⴰⵏⴰⵡⴰⵢⵜ‎ · አማርኛ · 한국어 · 日本語 · 中文(简体)‎ · 中文(繁體)‎ · 吴语 · 粵語 · ייִדיש · עברית · اردو · العربية · پښتو · سنڌي · فارسی · ދިވެހިބަސް

Интерфейс импорта o5m позволяет osm2pgsql читать данные из файлов в формате o5m.

Инсталляция

Процесс описан в RU:osm2pgsql#Из_исходников_(общее), за одним исключением:

После получения исходников из svn, скачайте интерфейс импорта o5m 2012-10-14. Затем распакуйте файлы и переместите их в субдиректорию osm2pgsql. Два файла будут новыми: parse-o5m.c и parse-o5m.h, и два уже существующими, и должны быть перезаписаны: osm2pgsql.c и Makefile.am.

Интерфейс импорта был успешно протестирован на osm2pgsql revision 26278. Как обычно: никаких гарантий, to the extent permitted by law.

В случае обычного исходного файла osm2pgsql.c с ревизии 26278, требуется внести изменения. Дополнительные строки (помечены знаком +) нужны для работы интерфейса импорта:

***************
*** 54,59 ****
--- 54,60 ----
  #include "sprompt.h"
  #include "parse-xml2.h"
  #include "parse-primitive.h"
+ #include "parse-o5m.h"
  
  #ifdef BUILD_READER_PBF
  #  include "parse-pbf.h"
***************
*** 174,179 ****
--- 175,181 ----
  #ifdef BUILD_READER_PBF
      printf("              \t\tpbf       - OSM binary format.\n");
  #endif
+     printf("              \t\to5m       - OSM binary format.\n");
      printf("   -O|--output\t\tOutput backend.\n");
      printf("              \t\tpgsql - Output to a PostGIS database. (default)\n");
      printf("              \t\tgazetteer - Output to a PostGIS database suitable for gazetteer\n");
***************
*** 520,525 ****
--- 522,529 ----
          streamFile = &streamFileXML2;
        } else if (strcmp("primitive", input_reader) == 0) {
          streamFile = &streamFilePrimitive;
+       } else if (strcmp("o5m", input_reader) == 0) {
+         streamFile = &streamFileO5m;
  #ifdef BUILD_READER_PBF
        } else if (strcmp("pbf", input_reader) == 0) {
          streamFile = &streamFilePbf;
***************
*** 550,555 ****
--- 554,563 ----
          /* if input_reader is not forced by -r switch try to auto-detect it
             by file extension */
          if (strcmp("auto", input_reader) == 0) {
+           if (strcasecmp(".o5m",argv[optind]+strlen(argv[optind])-4) == 0 ||
+               strcasecmp(".o5c",argv[optind]+strlen(argv[optind])-4) == 0) {
+             streamFile = &streamFileO5m;
+           } else
  #ifdef BUILD_READER_PBF
            if (strcasecmp(".pbf",argv[optind]+strlen(argv[optind])-4) == 0) {
              streamFile = &streamFilePbf;

В Makefile.am вам просто нужно добавить parse-o5m.c и parse-o5m.h в список компиляции.

Дополнительная информация

Для дополнительной информации о формате o5m смотрите следующие Вики страницы:

  • o5m
  • osmconvert – конвертация между различными форматами данных, вырезание регионов
  • osmfilter – фильтрация указанных объектов или тегов OSM, делает оффлайновый taginfo

Бенчмарки

Чтение файлов .o5m обычно чуть быстрее чтения других OSM форматов, но вы не получите значительного ускорения обработки, поскольку тут узким местом является запись в базу данных.

Добавляйте сюда ваши результаты бенчмарков.