Страница 1 из 2

MapServer & SHP файл

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

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

Re: MapServer & SHP файл

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

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

Re: MapServer & SHP файл

Добавлено: 11 авг 2010, 08:18
Flex81
А что такое экстент и как его правильно определить?

Re: MapServer & SHP файл

Добавлено: 11 авг 2010, 09:04
Mavka
Покажите свой файл настроек для MapServer (map-файл)

Re: MapServer & SHP файл

Добавлено: 11 авг 2010, 13:42
Flex81
Мой 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 выводит чистую страницу и никаких сообщений не выдает, где может быть ошибка?

Re: MapServer & SHP файл

Добавлено: 11 авг 2010, 13:53
Mavka
Экстент это он (что такое и в чем измеряется, думаю, и так понятно):

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

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

Re: MapServer & SHP файл

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

Re: MapServer & SHP файл

Добавлено: 11 авг 2010, 16:07
Mavka
Да уж, удивили, что то новенькое (точнее старенькое). Если это 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

Re: MapServer & SHP файл

Добавлено: 12 авг 2010, 08:53
Flex81
Этим учебником и пользуюсь, я еще новичок в геодезии и картографии.
У меня получился следующий 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]]

Re: MapServer & SHP файл

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

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

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

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

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

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

PROJECTION
    "AUTO"
END

Re: MapServer & SHP файл

Добавлено: 12 авг 2010, 10:26
Flex81
Высылаю SHP-файл с картой мира. А как перекодировать в настольную ГИС, я шейпфайл делал из карты MAPINFO, и как с ним работать потом

Re: MapServer & SHP файл

Добавлено: 12 авг 2010, 11:25
Mavka
Во-первых, позвольте извиниться за то, что рекомендовал убрать 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 КБ) 14579 просмотров
Если исходные данные перепроецировать в 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 КБ) 14579 просмотров

Re: MapServer & SHP файл

Добавлено: 12 авг 2010, 13:47
Flex81
Все получилось

Re: MapServer & SHP файл

Добавлено: 13 авг 2010, 09:36
Flex81
Mavka, как бы получить описание тегов из Вашего MAP-файла

Re: MapServer & SHP файл

Добавлено: 13 авг 2010, 10:02
Mavka
Это?

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

[code=php]
[/code]