создание своего OSM-сервера, как прокси

Да, именно так. При этом можно настроить потлатч и жосм на внутренню базу.

Нет, вы будете рисовать отдельный слой, который можно сделать отключаемым и/или полупрозрачным для накладывания на данные OSM (то есть, рисовать только добавленные «секретные» объекты). Разумеется, для лицензионной чистоты никакие данные из основной базы OSM не должны включаться в ваш набор.

При редактировании можно включить подложку OSM как тайлы, и привязываться к ней (не трассируя элементы явно). Ну или использовать любую другую подложку.

Более простой метод решения данной проблемы — взять любую подходящую ГИС, импортировать в неё данные OSM (взяв готовые SHP с Gis-Lab или сконвертировав самостоятельно).
Меня этот способ при решении такой же задачи вполне устроил.

,

в которой осм-рендер (глобальный или локальный) может выступать в качестве подложки.

Практика показала, что так лучше не делать.
Преимуществ растровая подложка над векторной особо не имеет, а вот недостатков полно:
— Плохое качество картинки на масштабах, неравных тем, что рендерит Мапник (это проявляется и в JOSM при включении подложки OSM)
— Меньшая скорость работы (тормоза), особенно если рендер глобальный и сеть небыстрая
— Невозможность просматривать свойства объектов, которые не рендерятся (addr:street, например)
— Меньшая гибкость: нужно поменять цвет дорог, в интуитивно понятном GUI хорошей ГИС взял и поменял; у глобального Мапника это никак не сделаешь
— Для локального Мапника нужен сервер, желательно с Линуксом. Если на остальных компьютерах Windows, то это лишние затраты на железо и на администрирование этого единственного сервера.

Ну, линукс у нас есть, он, как говориться, не может не есть :slight_smile:

Вариант с ГИС, как я понимаю - не подойдёт, т.к. рисовать эти секретные объекты будут пользователи, не сильно искушённые в картографии - это раз и второе - нужна централизация и отрисовка тайлов через браузер - как сервис.

Нет, вы будете рисовать отдельный слой, который можно сделать отключаемым и/или полупрозрачным для накладывания на данные OSM (то есть, рисовать только добавленные «секретные» объекты). Разумеется, для лицензионной чистоты никакие данные из основной базы OSM не должны включаться в ваш набор.

Т.е. будет две базы - одна - регулярно обновляемая с OSM, вторая - содержащая только секретные данные. Соответственно сервер будет рендерить первую как основной слой и вторую, как полупрозрачный слой и совмещать эти слои на выходе, который будет отображаться пользователям в их браузерах.
Если я правильно понял, то тогда пошёл разбираться :slight_smile:

Мы подобную вещь сделали просто - карта отдельно (в постгис, рендерится mapserver-ом), свои данные отдельно (интерфейс редактирования сделан свой, на базе OpenLayers). Объединяется при показе, в OpenLayers.

Гм, попробовал залить Приморский край, Россию - вываливается с ошибкой, что какой-то точки (идентификатора) нет в таблице. Почитал - видать действительно нужно заливать весь мир.
Скачал, начал заливать - вывалилось с ошибкой о том, что места не хватает. Оставшиеся 100 Гб из доступных 134Гб скушало и вывалилось…

Хм, а сколько же на загрузку мира в БД нужно места на сервере?

Возможно стоит clipIncompleteEntities сделать перед заливкой.

Хочется понять состояние вашей системы.
Правильно ли я понимаю, что:

  1. на вашем “локальной осм-сервер” (Rails Port, Mapnik …) можно зарегистрировать “локальный осм-аккаунт”
  2. создать под ним с помощью встроенного редактора Potlatch и\или локального Josm-а новый объект и сохранить его в локальной базе.
  3. увидеть его в мапниковской подложке локальной осм-карты
  4. отредактировать и увидеть изменения в подложке.

Ну примерно так. С той лишь разницей, что база мира и база вносимых изменений локальными пользователями будет разниться. И из изменений локальных пользователей будет генериться дополнительный слой, который будет накладываться на “отрендеренный” локальным сервером мир.

Спасибо!
Ну а пока мир лью :slight_smile: Увеличили место до 500 Гб на сервере и пытаюсь мир залить…

progserega,
секретные объекты будут отдельны от объектов в основной базе, или будут уточняться секретными данными объекты существующие в основной?

Тогда получается, что возникшая ошибка не связана со схемой “локального осм-сервера”, и если она не связана с количеством свободного место, то её нужно искать в схеме локального рендеринга мира из общих осм-данных.

И еще не понятно, что значит “из изменений локальных пользователей будет генериться дополнительный слой” ? В базовый слой OpenLayers на карте с результатими рендернга изменений в “локальной осм-сервере” также как переключение между мапник-ом и осмарендер-ом на карте openstreetmap.org?

Ну, сейчас заливается мир из xml в postgres, чтобы его локально “рендерить”. На этапе заливки в прошлый раз и вывалилось из-за отсутствия места на диске.

Я думаю локальный слой “секретных данных” будет прозрачным. И будет “довключаться”. Как оверлей космоснимков вот тут:
http://latlon.org/maxi?zoom=17&lat=56.33594&lon=30.51639&layers=0000000000000FF0000FBT

Но пока я до этого ещё не дошёл в процессе установки и настройки :slight_smile: Пока только мир заливается в postgres.

progserega, не понимаю зачем тебе “заливается мир из xml в postgres”, бери тайлы с osm.org, а свои рендери как прозрачный слой. Зачем это лишнее действие?

Обычно, настоящие “секретные данные” подразумевают наличие 15-ти метровой зоны безопасности, а также сдачу жестких дисков в конце рабочего дня в 1-й отдел. :slight_smile:
О каком интернете может идти речь :slight_smile:

По мануалу предлогаемая схема:

Transfer the Data to Postgres Database
Now we can transfer the OSM data from the file gis.osm into the Postgres database. The program osm2pgsql will do this job:
cd /usr/share/ptgen
osm2pgsql -s -C 700 -d ptgis -U ptuser -S …/osm2pgsql/default.style gis.osm
The more we filtered out in the previous step, the less time this transfer will take. An OSM extract of Germany, filtered as in the above example, should take only a few minutes.

Тоже ругается, но сообщение другого вида:

sysadmin@gis-server:/usr/share/geogen$ osm2pgsql -s -C 700 -d geodb -U pguser -S …/osm2pgsql/default.style gis1.osm
osm2pgsql SVN version 0.66-

Using projection SRS 900913 (Spherical Mercator)
Setting up table: planet_osm_point
SELECT AddGeometryColumn(‘planet_osm_point’, ‘way’, 900913, ‘POINT’, 2 );
failed: ERROR: AddGeometryColumns() - invalid SRID
CONTEXT: SQL statement “SELECT AddGeometryColumn(‘’,‘’, $1 , $2 , $3 , $4 , $5 )”
PL/pgSQL function “addgeometrycolumn” line 5 at SQL statement

Error occurred, cleaning up

Как я понял по тойже причине… Как быть?

Как ей planet_osm_point в принципе там появиться если я данные еще не конвертировал?

chehov85, вы забыли поставить для базы PostGIS и/или импортировать файл с описаниями систем координат.

Где изменить SQL-запрос на мою таблицу?