Рекомендации по проекту ГИС

#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 будет содержать данные переписи / демографические данные; но не географические данные.