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

В MapServer подписываются не все объекты

Добавлено: 14 май 2012, 15:43
BSvetlana
Добрый день!
В MapServer создаю карту. Нужно подписать один слой. Подписывается примерно 30% объектов. Перепробовала все условия:

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

LABEL
			COLOR 0 0 0
			TYPE TRUETYPE
			FONT arial
			SIZE 7
			POSITION CC
			ANTIALIAS TRUE
			ENCODING CP1251
			FORCE TRUE
			BUFFER 0
			PARTIALS TRUE
		END
результат всегда один и тот же. Визуально никаких конфликтов в размещении подписей нет. Если кто сталкивался, подскажите пожалуйста.

Re: В MapServer подписываются не все объекты

Добавлено: 14 май 2012, 18:51
Denis Rykov
Покажите картинку, а лучше приложите фрагмент данных для тестов.

[ Сообщение с мобильного устройства ]

Re: В MapServer подписываются не все объекты

Добавлено: 15 май 2012, 10:02
BSvetlana
Изображение
Подписаны не все дома, хотя данные там точно есть - проверяла в ArcView

Re: В MapServer подписываются не все объекты

Добавлено: 15 май 2012, 10:39
Denis Rykov
Странное поведение, никогда прежде не сталкивался. Можете вырезать фрагмент вашего слоя с домами, попробую посмотреть?

Re: В MapServer подписываются не все объекты

Добавлено: 15 май 2012, 11:36
BSvetlana
Спасибо за участие. Но я не знаю, как отправить фрагмент слоя.

Re: В MapServer подписываются не все объекты

Добавлено: 15 май 2012, 11:44
Denis Rykov
Ну как, создайте новый слой, вырежьте из существующего набор объектов и вставьте в него. Если ничего секретного в данных нет - можете весь слой выложить.

Re: В MapServer подписываются не все объекты

Добавлено: 15 май 2012, 11:47
BSvetlana
Я только что заметила: подписаны дома, у которых в названии есть А, Б, С, К, а если номер дома просто 123, то не подписывается

Re: В MapServer подписываются не все объекты

Добавлено: 15 май 2012, 12:02
qnx
может там регулярным выражением они отсекаются? наподобие

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

FILTER /^[0-9]*$/

Re: В MapServer подписываются не все объекты

Добавлено: 15 май 2012, 12:04
BSvetlana

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

LAYER 
    NAME         address
    DATA         address
    STATUS       ON
    TYPE         point
    PROJECTION
        "proj=latlong" 
        "ellps=WGS84"
        "datum=WGS84"  
    END
    LABELITEM    "ADRES"
    MAXSCALEDENOM   10000
    LABELMAXSCALEDENOM 8000
    DUMP TRUE           ## REQUIRED

    CLASS
		NAME       "Адреса"
		EXPRESSION ([ADRES] != "")
		STATUS       ON
		STYLE
			COLOR 225 225 225
		END
		LABEL
			COLOR 0 0 0
			TYPE TRUETYPE
			FONT arial
			SIZE 7
			POSITION CC
			ANTIALIAS TRUE
			ENCODING CP1251
			FORCE TRUE
			BUFFER 0
			PARTIALS TRUE
		END
    END
	
    METADATA
		wms_title "address"
		wms_abstract "address"
		wms_srs           "EPSG:4326 EPSG:28407"
		wms_include_items "all"
					
		"wfs_title"    "address" ## REQUIRED
		"gml_featureid" "FID" ## REQUIRED
		"gml_include_items" "all"  ## Optional (serves all attributes for layer)
    END
END # Конец определения слоя

Re: В MapServer подписываются не все объекты

Добавлено: 15 май 2012, 12:09
qnx
а если закомментировать строку

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

EXPRESSION ([ADRES] != "")

Re: В MapServer подписываются не все объекты

Добавлено: 15 май 2012, 12:15
Denis Rykov
Еще *.shx файл нужен.

Re: В MapServer подписываются не все объекты

Добавлено: 15 май 2012, 12:15
BSvetlana
qnx писал(а):а если закомментировать строку

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

EXPRESSION ([ADRES] != "")
Получилось. :oops:

Re: В MapServer подписываются не все объекты

Добавлено: 15 май 2012, 12:26
Denis Rykov
Ok. Есть предположение, что MapServer видя в условии EXPRESSION ([ADRES] != "") значение поля ADRES выражающееся числом и сравнивает его с пустой строкой, что естественно возвращает False. Предположу, что если вы напишите:

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

EXPRESSION ('[ADRES]' != '')
(закавычите [ADRES]) то тоже появятся недостающие подписи.

Re: В MapServer подписываются не все объекты

Добавлено: 15 май 2012, 13:32
BSvetlana
Denis Rykov писал(а):(закавычите [ADRES]) то тоже появятся недостающие подписи.
Да, действительно, подписи появились.
Всем спасибо за участие в решении проблемы!