2012-06-01 2 views
3

Я начал с отображения. Я хотел бы посмотреть карту Франции со слоем сверху, который будет персонализирован.OpenLayer + OpenStreetMap + Custom ShapeFile

У меня уже есть пользовательский слой с форматом шейп-файла. Я вообще не знаю, нужно ли мне создавать сервер OpenStreetMap или я могу напрямую использовать веб-приложение.

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

Я думаю, задача сложная, но вы должны начать где-то ...

спасибо

ответ

7

Это зависит от того, что вы хотите сделать. Это большой файл Shapefile?

Вы можете сделать несколько вещей, в то время как создать карту OpenLayers:

  • использовать сервер общего OpenStreetMap фоновых плиток (реализацию по умолчанию OSM Layer) и добавить функцию слой (точки, многоугольники, все, что там) как векторный функциональный слой в OSM. Чтобы получить свои векторные функции из вашего шейп-файла, вы можете:
    • предварительно загрузите их в свою базу данных в приличном формате на основе ГИС. Это позволяет вам обслуживать ваши функции при выполнении запросов с ограничительной рамкой и требуется, если у вас есть более 1000/10000 функций.
    • конвертировать шейп в формате, читаемом OpenLayers (либо в браузере с помощью https://github.com/wavded/js-shapefile-to-geojson или preconvert их с помощью инструмента, как ogr2ogr)
  • или, если вам не требуется взаимодействие с этими функциями, вы можете комбинировать ваши данные с данными OSM, и создайте свои пользовательские плитки. Это более легкий вес для браузера, но он довольно сложный (прочитайте все данные OSM в БД, сгенерируйте плитки с mapnik)
2

Если вы хотите добавить OpenStreetMap (OSM) над шейпом слоем, просто добавьте следующая строка кода,

var osm = new OpenLayers.Layer.OSM(); 
map.addLayer(osm); 

Хотя я не понимаю, зачем вам нужно создать сервер OpenStreetMap для?

1

вам need not to create OpenStreetMap server собственного

, если вы хотите, чтобы отобразить пользовательский слой на карте, чем использовать google or openstreetmap в качестве базового слоя

и отображения слоя (поставляется файл форма формы) на карте.