#gis #openlayers #postgis #mapserver
#ГИС #openlayers #postgis #mapserver
Вопрос:
Здравствуйте:
У меня есть следующее:
1. Шейп-файл мира с границами каждой страны
— Успешно импортированный шейп-файл в базу данных PostGIS
— Может отображать карту мира в браузере через Openlayers.
2 Файл данных (CSV), в котором каждая запись содержит
a. страну рождения,
b. пол,
c. широту и длину страны рождения (которая соответствует широте и длине в шейп-файле)
Я пытаюсь найти наилучший подход к отображению карты, на которой каждая страна (на основе данных CSV), в которой проживает 100 или более человек, имеет цвет, скажем, красный или зеленый….
Итак, мой вопрос таков:
если я создам отдельную таблицу с данными CSV, есть ли способ связать эту таблицу с таблицей шейп-файлов для выполнения вышеуказанного?
или
Нужно ли мне объединить CSV-данные в таблицу шейп-файла, чтобы выполнить вышеуказанное
Я использую PostGIS, mapserver и Openlayers
Спасибо
Крису
Комментарии:
1. Я думаю gis.stackexchange.com было бы более подходящим для этого вопроса
2. Я проверю этот веб-сайт…. Спасибо!!
Ответ №1:
Я бы импортировал данные из CSV-файла в ту же базу данных PostGIS, а затем создал представление для двух таблиц, в которых были бы указаны название страны и количество людей (рассчитанные на основе данных в CSV-файле).
Затем я бы создал WMS на Mapserver из этого представления с SLD, где я указываю, какой цвет получает каждая страна в зависимости от количества людей.
Комментарии:
1. Игорь: Я понимаю, о чем вы говорите…. Это статический набор данных, поэтому я могу использовать таблицу вместо представления…. У меня вопрос о файле shape… Я просмотрел связанный файл dbf и не вижу столбца геометрии. Итак, как мне найти геометрию для каждой страны? Крис
2. одно дополнение; Не забудьте добавить запись в ПРЕДСТАВЛЕНИЕ в вашей таблице geometry_columns: postgis.refractions.net/documentation/manual-1.4 /…
Ответ №2:
Вы можете импортировать файл общего доступа в geoserver, и geoserver предоставит ресурс WMS, который OpenLayers смогут прочитать.
Я не слишком уверен в том, как интегрировать CSV-данные, поскольку прошло некоторое время. Возможно, вы можете просто сделать так, чтобы у каждой страны был свой собственный идентификатор DOM и просто изменить CSS на другой цвет фона после рендеринга карты с помощью javascript.
Комментарии:
1. Спасибо за предложение… Но я использую mapserver в этом проекте… Основываясь на другом предложении, я импортирую CSV-файл в виде таблицы и получу то, что хочу, с помощью инструкции SELECT, которая получает данные из обеих таблиц… Крис
Ответ №3:
@chris файл .dbf должен содержать негеографические данные, такие как данные о стране рождения и поле.
Другим хорошим примером является шейп-файл из Бюро переписи населения США. Обычно файл dbf будет содержать данные переписи / демографические данные; но не географические данные.