Проблема с кодировкой

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
dimas4
Интересующийся
Сообщения: 17
Зарегистрирован: 16 апр 2009, 18:28
Репутация: 0

Проблема с кодировкой

Сообщение dimas4 »

Использую mapserver+openlayers+postgis, возникла проблема с кодировкой. Когда я использовал PostGreSQL 8.2 и PostGis 1.4 все было нормально, т.е. когда я создавал базу в postgresql 8.2, там по молчанию кодировка создаваемой базы была ASCII, и соответственно когда я в мап файле прописывал LABEL подписи к объектам на карте отображались и были читабельны. Недавно я решил обновиться до postgre 8.4 и postgis 1.5, там по умолчанию кодировка при создании базы UTF8, причем если выбираеш дргую кодировку то при создании базы выдает ошибку. Так вот, теперь когда я отображаю подписи к объектам, русские подписи отображаются билибердой. параметр для shp2pgsql -W cp1251, -W UTF8 не помогают, так же пробывал указывать для слоя в map файле в параметре METADATA, wms_encoding "cp1251" и utf8, ничего не помогает. Что делать?
Вот мап файл

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

MAP								
  NAME           "wms"
  STATUS         ON
  IMAGETYPE      PNG						
  #EXTENT         -15000 -19200 26200 16000
  SIZE           200 300 #400 400					
  SHAPEPATH      "C:/ms4w/Apache/htdocs/street/shp/"
 	
	#SYMBOLSET      "symbols/symbols.sym"  

  IMAGECOLOR     255 255 255					# цвет бекграунда
 SYMBOLSET      "C:/ms4w/Apache/htdocs/street/shp/symbol.sym"
  FONTSET	   "fonts/fonts.list"


  WEB
    TEMPLATE  "template.html"
    IMAGEPATH "C:/ms4w/apps/example/images/"
	IMAGEURL  "C:/ms4w/apps/example/images/tmp/"
    METADATA
		wms_title "street"
		wms_abstract "Брянск"
		wms_onlineresource		"http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/example/podpis.map&"	
		wms_getfeatureinfo		"http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/example/podpis.map&"	
		wms_featureinfoformat	"text/plain"   #"gml" #
		wms_featureinfoformat      "gml"
		wms_srs "EPSG:4326"				
	   END
   END



  PROJECTION
	# "init=epsg:4326"					
   "proj=latlong"
   "ellps=WGS84"
   "datum=WGS84"
  END

  LAYER 							
  #MAXSCALEDENOM 1575
 CONNECTIONTYPE postgis
 CONNECTION "user=postgres password=pass dbname=street host=localhost"   

 NAME         veget						
 DATA "the_geom from point"						

 TYPE         POLYGON   					
TEMPLATE     "dummy" 
STATUS       ON						
           METADATA
		   wms_encoding   "UTF8"
		wms_title		"point"
		wms_abstract		"doma"
	#	wms_srs		"EPSG:4326"
	#	wms_include_items "all"
		wms_include_items "all"
	#	gml_include_items "all"
	    END
		
	MINSCALEDENOM 1575000		
	
#CLASSITEM    "УЧАСТОК"
 CLASS								
	#MINSCALEDENOM 315000000
	#MAXSCALEDENOM 1575
#NAME       "xz44"					
#EXPRESSION 'жилой'
      STYLE							
        COLOR      216 169 3				
        OUTLINECOLOR 0 0 0
	END							
    END							
	
END

  LAYER 							
 CONNECTIONTYPE postgis
 CONNECTION "user=postgres password=pass dbname=street host=localhost"   

 NAME         nomera						
 DATA "the_geom from point"						
 #DATA        "C:/ms4w/Apache/htdocs/street/shp/street.shp"
 TYPE         POLYGON   					
TEMPLATE     "dummy" 
STATUS       ON						
           METADATA
		wms_encoding   "UTF8"
		wms_title		"nomera"
		wms_abstract		"nomera domov"
	#	wms_srs		"EPSG:4326"
	#	wms_include_items "all"
		wms_include_items "all"
	#	gml_include_items "all"
	    END
	
	 LABELITEM    "name"   					
	 
    CLASS
	MAXSCALEDENOM 315000000
      NAME       "dom"
  #    STYLE
  #      COLOR        255 255 255 #12 12 12
  
  #    END
    LABEL
	
	#LABELMINSCALEDENOM 1575
           COLOR 0 0 0 #32 32 32
	OUTLINECOLOR 255 255 255
        #SHADOWCOLOR 218 218 218
        #SHADOWSIZE 2 2
        TYPE TRUETYPE
        FONT arial-italic #arial-bold #-italic
        SIZE 10
        ANTIALIAS TRUE
       PARTIALS FALSE
    MINDISTANCE 100
        BUFFER 3
		ANGLE [MYANGLE]
        ENCODING CP1251
		
	END
	END

END

END
html код

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

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
 
    <link rel="stylesheet" href="theme/default/style.css" type="text/css" />
    <link rel="stylesheet" href="style.css" type="text/css" />
	 <style type="text/css">
            body {
                margin: 0;
            }
            #map {
                width: 80%;
                height: 100%;
            }

            #text {
                position: absolute;
                bottom: 1em;
                left: 1em;
                width: 512px;
            }
        </style>
    <script src="OpenLayers.js"></script>
	<script type="text/javascript" >
	
        var lon = 400;
        var lat = 400;
        var zoom = 1;
        var map, layer;
		
       
			
		
		
        function init(){
		
         
		
		options = {
				maxExtent: new OpenLayers.Bounds(-15000, -19200, 26200, 16000), 
				 resolutions: [80,60,50,40,20,15,7.5,5,3,1,0.55,0.2,0.1,0.01]
				 
			};
                  
		
		
            map = new OpenLayers.Map( 'map' , options);
			
			var   veget = new OpenLayers.Layer.WMS( "OpenLayers WMS",
                    "/cgi-bin/mapserv.exe?map=/ms4w/apps/example/podpis.map&", {layers: 'veget',  srs: 'EPSG:4326'} , {singleTile: true, ratio: 1});
         var   layer = new OpenLayers.Layer.WMS( "OpenLayers WMS2",
                    "/cgi-bin/mapserv.exe?map=/ms4w/apps/example/podpis.map&", {transparent: 'true', layers: 'nomera'} , {singleTile: true, ratio: 1});
			
	var water_ctrl = new OpenLayers.Control.WMSGetFeatureInfo({
	url: '/cgi-bin/mapserv.exe?map=/ms4w/apps/example/podpis.map',
	title: 'wms info',
	layers: [layer],
	infoFormat: 'text/plain',
	queryVisible: true
});
function showInfo(evt) {
	$('wms_info').innerHTML = evt.text;
}
water_ctrl.events.register('getfeatureinfo', this, showInfo);
map.addControl(water_ctrl);
water_ctrl.activate();


            map.addLayer(layer);
			map.addLayer(veget);
			map.addControl( new OpenLayers.Control.LayerSwitcher() );
			map.addControl(new OpenLayers.Control.MousePosition());
			map.setCenter(new OpenLayers.LonLat(lon, lat), zoom);
			    map.addControl(new OpenLayers.Control.Scale()); 

		  
         
        }

    </script>
  </head>
  <body onload="init()">
    <h1 id="title">WMS Example</h1>

    <div id="tags">
    </div>
    <p id="shortdesc">
                Отображение простого WMS слоя в ОЛ.
    </p>
<div id="wms_info"></div>
    <div id="map" class="smallmap" ></div>

    <div id="docs">
        	Это пример того, как добавить слой WMS к окну OpenLayers.
    </div>
  </body>
</html>



И еще почемуто когда слово начинается на букву "И" то оно нормально отображается.
Последний раз редактировалось dimas4 09 апр 2010, 14:40, всего редактировалось 1 раз.
dimas4
Интересующийся
Сообщения: 17
Зарегистрирован: 16 апр 2009, 18:28
Репутация: 0

Re: Проблема с кодировкой

Сообщение dimas4 »

Оказывается нужно было в LABEL убрать ENCODING CP1251.
Ответить

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

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

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