MapServer & SHP файл

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Flex81
Интересующийся
Сообщения: 22
Зарегистрирован: 09 авг 2010, 11:30
Репутация: 0

MapServer & SHP файл

Сообщение Flex81 » 10 авг 2010, 15:08

Уважаемые Господа, подскажите пожалуйста каким образом можно самостоятельно подготовить набор SHP-файлов и отобразить их с помощью mapserver'а.

Я самостоятельно подготовил shp-файл из tab-файла средствами mapinfo, но mapserver выводит пустое изображение, как еще можно подготовить shp - файлы :?:

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: MapServer & SHP файл

Сообщение Mavka » 10 авг 2010, 16:29

UMN MapServer работает с файлами в формате MapInfo точно также как и с Shapеfile, преобразовывать их нет необходимости. Никакой спец. подготовки данные не требуют, в каком виде были в Arcview в таком и используются MapServer'ом.

Самая распространенная ошибка - неправильно указан экстент в map-файле. Ну и другие варианты...
лангольеры под окном жрали время ом-ном-ном

Flex81
Интересующийся
Сообщения: 22
Зарегистрирован: 09 авг 2010, 11:30
Репутация: 0

Re: MapServer & SHP файл

Сообщение Flex81 » 11 авг 2010, 08:18

А что такое экстент и как его правильно определить?

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: MapServer & SHP файл

Сообщение Mavka » 11 авг 2010, 09:04

Покажите свой файл настроек для MapServer (map-файл)
лангольеры под окном жрали время ом-ном-ном

Flex81
Интересующийся
Сообщения: 22
Зарегистрирован: 09 авг 2010, 11:30
Репутация: 0

Re: MapServer & SHP файл

Сообщение Flex81 » 11 авг 2010, 13:42

Мой map файл выглядит следующим образом

MAP
IMAGETYPE PNG
# EXTENT -97.238976 41.619778 -82.122902 49.385620
EXTENT -180 -90 180 90
SIZE 400 300
SHAPEPATH "../data"
IMAGECOLOR 255 255 255

LAYER # States polygon layer begins here
# NAME states
NAME world_region
# DATA states_ugl
DATA world_region
STATUS OFF
TYPE POLYGON

CLASS
NAME "The Upper Great Lakes States"
STYLE
COLOR 232 232 232
OUTLINECOLOR 32 32 32
END
END
END # States polygon layer ends here
END # All map files must come to an end just as all other things must come to...

Я ЭКСПОРТИРОВАЛ КАРТУ (миллионку) В SHPfile и теперь пытаюсь ее отобразить с помощью mapserver. MapServer выводит чистую страницу и никаких сообщений не выдает, где может быть ошибка?
Последний раз редактировалось Flex81 11 авг 2010, 13:54, всего редактировалось 1 раз.

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: MapServer & SHP файл

Сообщение Mavka » 11 авг 2010, 13:53

Экстент это он (что такое и в чем измеряется, думаю, и так понятно):

Код: Выделить всё

EXTENT -180 -90 180 90
  1. В какой системе координат ваши данные (в map-файле она не указана)
  2. Как смотрите результат?
  3. Вас не смущает "STATUS OFF"?
  4. Уберите CLASS и STYLE вовсе
P.S. Используйте теги для более комфортного представления данных [/code]
лангольеры под окном жрали время ом-ном-ном

Flex81
Интересующийся
Сообщения: 22
Зарегистрирован: 09 авг 2010, 11:30
Репутация: 0

Re: MapServer & SHP файл

Сообщение Flex81 » 11 авг 2010, 14:32

У меня система координат: Проекция мира Робинсона на WGS84, как ее указать ?
STATUS OFF - стоит по умолчанию в примере, я еще не знаю что он обозначает

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: MapServer & SHP файл

Сообщение Mavka » 11 авг 2010, 16:07

Да уж, удивили, что то новенькое (точнее старенькое). Если это World Robinson (сверьте файл prj с аналогичным в ваших данных), то должно быть так:

Код: Выделить всё

MAP
    EXTENT -180 -90 180 90
    ...

# общая СК, относительно которой задается extent
PROJECTION
    "init=epsg:4326"
END

LAYER
    NAME world_region 
    DATA world_region
    TYPE POLYGON
    PROJECTION    # проекция слоя
        "init=esri:54030"
    END # proj
END
стоит по умолчанию в примере
Вы каким учебником пользуетесь? Рекомендую: Начало работы с MapServer
Хотя понял, этим - Обучающее пособие по Mapserver 5.x. В нем далее по тексту объясняется значение STATUS OFF
лангольеры под окном жрали время ом-ном-ном

Flex81
Интересующийся
Сообщения: 22
Зарегистрирован: 09 авг 2010, 11:30
Репутация: 0

Re: MapServer & SHP файл

Сообщение Flex81 » 12 авг 2010, 08:53

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

Код: Выделить всё

MAP
    EXTENT -180 -90 180 90 
    SIZE           400 300
    SHAPEPATH      "../data"
    IMAGECOLOR     255 255 255
    #...
      
    # общая СК, относительно которой задается extent
    PROJECTION
        "init=epsg:4326"
    END # proj

    LAYER
        NAME world_region 
        DATA world_region
        TYPE POLYGON
        PROJECTION    # проекция слоя
            "init=esri:54030"
        END # proj
    END # layer
END # map
Однако все равно выводит пустоту и ничего не говорит. А что с чем сравнить я должен сравнить (просто не понял), в файле prj у меня следующий код

Код: Выделить всё

PROJCS["_MI_0",GEOGCS["North_American_Datum_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982139006]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Robinson"],PARAMETER["longitude_of_center",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1]]

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: MapServer & SHP файл

Сообщение Mavka » 12 авг 2010, 09:37

Сравнить с этим. И, как видно, датумы у них различаются. Подходящих проекций я ни в одной базе (epsg, esri, sr-org, proj.4) не вижу, новенький proj2epsg вообще странные результаты выдает. А вам не проще будет перепроецировать данные в какой-нибудь настольной ГИС?

Карта большая? Можете прислать (приложить к посту)? Просто интересно поработать с такой проекцией.

Еще варианты для проекции слоя (но это уже гадание по лопатке барана):
первый

Код: Выделить всё

PROJECTION
    "proj=robin"
    "lon_0=0"
    "x_0=0"
    "у_0=0"
END
второй

Код: Выделить всё

PROJECTION
    "AUTO"
END
лангольеры под окном жрали время ом-ном-ном

Flex81
Интересующийся
Сообщения: 22
Зарегистрирован: 09 авг 2010, 11:30
Репутация: 0

Re: MapServer & SHP файл

Сообщение Flex81 » 12 авг 2010, 10:26

Высылаю SHP-файл с картой мира. А как перекодировать в настольную ГИС, я шейпфайл делал из карты MAPINFO, и как с ним работать потом
Вложения
world_region.rar
SHP-файл с картой мира
(531.02 КБ) 533 скачивания

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: MapServer & SHP файл

Сообщение Mavka » 12 авг 2010, 11:25

Во-первых, позвольте извиниться за то, что рекомендовал убрать STYLE. Без него на карте не рисуется вообще ничего. Я привык что в GeoServer и OpenLayers применяется стиль по-умолчанию и хотел максимально упростить файл настроек, чтобы избежать опечаток.
Изображение
Рабочий вариант:

Код: Выделить всё

MAP
    EXTENT -180 -90 180 90 
    SIZE 400 300
    SHAPEPATH "d:/work/tmp/robinson/data/"
    IMAGECOLOR 255 255 255
      
PROJECTION
    "init=epsg:4326"
END # proj

# На случай если захотите увидеть сообщения об ошибках
#CONFIG "MS_ERRORFILE" "d:\work\tmp\robinson\dbg.log"
#DEBUG 5

LAYER
    NAME world_region 
    DATA world_region
    TYPE POLYGON
    PROJECTION
        "proj=robin"
        "lon_0=0"
        "x_0=0"
        "у_0=0"
        "ellps=clrk66"
        "datum=NAD27"
        "units=m"
    END
    CLASS
        STYLE
            COLOR 232 232 232
            OUTLINECOLOR 32 32 32
        END
    END
END # layer
END # map          
При включенной отладке говорит "some points failed to reproject, doing internal sampling"
Изображение
На выходе получаем немного покореженную карту в районе антарктики:
robinson.gif
Карта в WGS84
robinson.gif (4.1 КБ) 14559 просмотров
Если исходные данные перепроецировать в WGS84
world_wgs84.zip
Карта в проекции Робинсона
(677.38 КБ) 543 скачивания
и, соответственно, изменить описание слоя:

Код: Выделить всё

LAYER
    NAME world_region 
    DATA world_wgs84
    TYPE POLYGON
    PROJECTION
        "init=epsg:4326"
    END
    CLASS
        STYLE
            COLOR 232 232 232
            OUTLINECOLOR 32 32 32
        END
    END
END # layer      
получим более корректный результат:
wgs84.gif
Карта в WGS84
wgs84.gif (4.23 КБ) 14559 просмотров
лангольеры под окном жрали время ом-ном-ном

Flex81
Интересующийся
Сообщения: 22
Зарегистрирован: 09 авг 2010, 11:30
Репутация: 0

Re: MapServer & SHP файл

Сообщение Flex81 » 12 авг 2010, 13:47

Все получилось

Flex81
Интересующийся
Сообщения: 22
Зарегистрирован: 09 авг 2010, 11:30
Репутация: 0

Re: MapServer & SHP файл

Сообщение Flex81 » 13 авг 2010, 09:36

Mavka, как бы получить описание тегов из Вашего MAP-файла

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: MapServer & SHP файл

Сообщение Mavka » 13 авг 2010, 10:02

Это?

Код: Выделить всё

[code=php]
[/code]
лангольеры под окном жрали время ом-ном-ном

Ответить

Вернуться в «Веб-картография»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя