Как вывести в mapserver label с названием дома

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
Mafk
Новоприбывший
Сообщения: 2
Зарегистрирован: 29 окт 2010, 07:37
Репутация: 0

Как вывести в mapserver label с названием дома

Сообщение Mafk » 29 окт 2010, 08:06

Здравствуйте,
Имеется ms4w/mapserver 5.2.1, TAB-файл, с полями "address", и typeobject.
Необходимо вывести подпись поля "address" на карту. Испробовал множество вариантов из документации. Не выводит.
Подскажите куда копать?

map-файл.

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

MAP
  	IMAGETYPE      png24
  	IMAGECOLOR     255 255 255
	FONTSET        "./fonts/fonts.list"
OUTPUTFORMAT
  NAME "png24"
  DRIVER "GD/PNG"
  MIMETYPE "image/png"
  IMAGEMODE RGB
  EXTENSION "png"
END

PROJECTION
	"proj=latlong" 
	"ellps=WGS84" 
    	"datum=WGS84" 
    	"zone=46" 
    	"units=m" 
    	"north" 
    	"no_defs"
END

LAYER 
	DEBUG 5
	NAME building
	TYPE POLYGON
	STATUS DEFAULT
	CONNECTIONTYPE OGR
	CONNECTION "./building.tab"
	STYLEITEM "AUTO"
	LABELITEM "address"
	CLASS
		LABEL
		        COLOR 132 31 31
        		SHADOWCOLOR 218 218 218
		        SHADOWSIZE 2 2
		        TYPE TRUETYPE
		        FONT arial
		        SIZE 7
		        POSITION AUTO
		        PARTIALS TRUE
		        BUFFER 3
		        ENCODING CP1251
			ANGLE AUTO	
	      END
	END
END
END 
Результат вывода: ogrinfo building.tab building

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

INFO: Open of `/ms4w/apps/aban/building.tab'
      using driver `MapInfo File' successful.

Layer name: building
Geometry: Unknown (any)
Feature Count: 3355
Extent: (96.035528, 56.653913) - (96.113935, 56.689746)
Layer SRS WKT:
GEOGCS["unnamed",
    DATUM["WGS_1984",
        SPHEROID["WGS 84",6378137,298.257223563],
        TOWGS84[0,0,0,0,0,0,0]],
    PRIMEM["Greenwich",0],
    UNIT["degree",0.0174532925199433]]
typeobject: String (50.0)
address: String (17.0)

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

Re: Как вывести в mapserver label с названием дома

Сообщение Mavka » 29 окт 2010, 12:22

  1. Что говорится в debug?
  2. STYLEITEM "AUTO" может конфликтовать с CLASS LABEL
  3. Совсем ничего не рисует?
P.S. В PROJECTION у вас реально определено 2 проекции - одна географическая WGS84, вторая UTM zone 46. Как оно вообще может работать я не представляю. Для слоя проекция не указана вовсе.
лангольеры под окном жрали время ом-ном-ном

Mafk
Новоприбывший
Сообщения: 2
Зарегистрирован: 29 окт 2010, 07:37
Репутация: 0

Re: Как вывести в mapserver label с названием дома

Сообщение Mafk » 01 ноя 2010, 04:55

Спасибо. Проблема была в STYLEITEM "AUTO". Пришлось вынести подписи во второй слой, убрать STYLEITEM AUTO, и задать цвет шрифта. Проекции, видимо, остались от экспериментов. Кстати, даже с такой конфигурацией проекций всё работает :D

Сам я новичок в ГИС системах, еще путаются в голове различные проекции.
Если не сложно, можете натолкнуть на хорошую литературу?

P.S.> Есть ли необходимость указывать проекцию для слоя, если указана проекция в MAP части файла?

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

Re: Как вывести в mapserver label с названием дома

Сообщение Mavka » 01 ноя 2010, 11:23

Географическая система координат (широта и долгота в градусах):

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

"proj=latlong"
Проекция UTM, измеряется в метрах. И уже не долгота/широта, а "восточность/северность".

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

"ellps=WGS84" 
    "datum=WGS84" 
    "zone=46" 
    "units=m" 
    "north" 
    "no_defs" 
указывать проекцию для слоя, если указана проекция в MAP
Если проекции совпадают, то достаточно указать в MAP.
лангольеры под окном жрали время ом-ном-ном

Ответить

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

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

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