2008年11月10日星期一

testcall.map

MAP

OUTPUTFORMAT
NAME 'AGGPNG'
DRIVER AGG/PNG
IMAGEMODE RGB
END


NAME "Testing"
EXTENT -180 -90 180 90
#EXTENT 90 30 120 60

IMAGETYPE AGGPNG
STATUS ON
SIZE 256 256
ANGLE 0
SHAPEPATH "data1"
FONTSET "fonts.txt"
DEBUG ON
SYMBOLSET "symbols.txt"
IMAGECOLOR 181 208 208
RESOLUTION 1
TRANSPARENT ON

WEB
IMAGEPATH "/opt/apache/htdocs/mapserver/mapimages/"
IMAGEURL "/mapserver/mapimages/"
LOG /opt/apache/htdocs/mapserver/logs/mapserver.log
END
REFERENCE
STATUS ON
IMAGE "/opt/apache/htdocs/testmap/0.png"
SIZE 164 102
EXTENT -180 -90 180 90
COLOR -1 -1 -1
OUTLINECOLOR 255 0 0
END
LEGEND
KEYSIZE 18 12
OUTLINECOLOR 0 0 0
IMAGECOLOR 180 180 180
LABEL
TYPE BITMAP
SIZE MEDIUM
COLOR 0 0 89
END
STATUS ON
END

SCALEBAR
COLOR 0 0 125
IMAGECOLOR 125 125 125
OUTLINECOLOR 255 0 0
BACKGROUNDCOLOR 0 125 0
UNITS KILOMETERS
INTERVALS 4
STYLE 0

END

PROJECTION
"init=epsg:900913"
END


LAYER
NAME "LINE"
TYPE line
STATUS DEFAULT
CONNECTIONTYPE postgis
CONNECTION "user=postgres password=mapabc dbname=test host=172.17.17.130"
DATA "the_geom from road"
LABELITEM "roadname"
#DATA "Road_polyline"
PROJECTION
"init=epsg:4326"
END

TRANSPARENCY 50
TRANSFORM true
CLASS
NAME "<=1000"
EXPRESSION ([roadclass] = 44000)
STYLE
COLOR 0 0 0
SYMBOL 1
SIZE 8
END
STYLE
COLOR 255 255 0
SYMBOL 1
SIZE 7
END
STYLE
MINSIZE 0
MAXSIZE 100
COLOR 0 0 0
SYMBOL "arrow"
SIZE 0
END
LABEL
encoding gbk
TYPE truetype
FONT "YaHei"
SIZE 10
MINSIZE 0
MINFEATURESIZE auto #文字密度
COLOR 0 0 255
#shadowsize 1 1
#SHADOWCOLOR 128 128 128
#BACKGROUNDSHADOWCOLOR 0 255 0
#BACKGROUNDSHADOWSIZE 10 10
#backgroundcolor 0 200 0
OUTLINECOLOR 255 255 255 #文字描边色
#MINDISTANCE 100 #同类型文字密度
#BUFFER 100
#BUFFER 20
#OFFSET -180 -180
#FORCE true
PARTIALS true
ANTIALIAS TRUE
POSITION cc
ANGLE auto
#PARTIALS false
END
END
CLASS
NAME "<=1000"
EXPRESSION ([roadclass] = 43000)
STYLE
COLOR 255 0 0
SYMBOL 1
SIZE 4
END
LABEL
encoding gbk
TYPE truetype
FONT "YaHei"
SIZE 10
MINSIZE 0
MINFEATURESIZE 60 #文字密度
COLOR 0 0 0
#shadowsize 1 1
#SHADOWCOLOR 128 128 128
#BACKGROUNDSHADOWCOLOR 0 255 0
#BACKGROUNDSHADOWSIZE 10 10
#backgroundcolor 0 200 0
OUTLINECOLOR 255 255 255 #文字描边色
MINDISTANCE 100 #同类型文字密度
#BUFFER 100
#OFFSET -180 -180
#FORCE true #文字交叉
PARTIALS true
ANTIALIAS TRUE
PARTIALS false
POSITION cl
ANGLE auto
#PARTIALS false
END
END
CLASS
NAME "<=1000"
EXPRESSION ([roadclass] = 42000)
STYLE
COLOR 255 0 0
SYMBOL 1
SIZE 2
END
LABEL
encoding gbk
TYPE truetype
FONT "YaHei"
SIZE 10
MINSIZE 0
MINFEATURESIZE 60 #文字密度
COLOR 0 0 0
#shadowsize 1 1
#SHADOWCOLOR 128 128 128
#BACKGROUNDSHADOWCOLOR 0 255 0
#BACKGROUNDSHADOWSIZE 10 10
#backgroundcolor 0 200 0
OUTLINECOLOR 255 255 255 #文字描边色
MINDISTANCE 100 #同类型文字密度
#BUFFER 100
#OFFSET -180 -180
#FORCE true #文字交叉
PARTIALS true
ANTIALIAS TRUE
PARTIALS false
POSITION cl
ANGLE auto
#PARTIALS false
END
END
CLASS
NAME "<=1000"
EXPRESSION ([roadclass] = 51000)
STYLE
COLOR 255 0 0
SYMBOL 1
SIZE 2
END
LABEL
encoding gbk
TYPE truetype
FONT "YaHei"
SIZE 10
MINSIZE 0
MINFEATURESIZE 60 #文字密度
COLOR 0 0 0
#shadowsize 1 1
#SHADOWCOLOR 128 128 128
#BACKGROUNDSHADOWCOLOR 0 255 0
#BACKGROUNDSHADOWSIZE 10 10
#backgroundcolor 0 200 0
OUTLINECOLOR 255 255 255 #文字描边色
MINDISTANCE 100 #同类型文字密度
#BUFFER 100
#OFFSET -180 -180
#FORCE true #文字交叉
PARTIALS true
ANTIALIAS TRUE
PARTIALS false
POSITION cl
ANGLE auto
#PARTIALS false
END
END
CLASS
NAME "<=1000"
EXPRESSION ([roadclass] = 42000)
STYLE
COLOR 255 0 0
SYMBOL 1
SIZE 2
END
LABEL
encoding gbk
TYPE truetype
FONT "YaHei"
SIZE 10
MINSIZE 0
MINFEATURESIZE 60 #文字密度
COLOR 0 0 0
#shadowsize 1 1
#SHADOWCOLOR 128 128 128
#BACKGROUNDSHADOWCOLOR 0 255 0
#BACKGROUNDSHADOWSIZE 10 10
#backgroundcolor 0 200 0
OUTLINECOLOR 255 255 255 #文字描边色
MINDISTANCE 100 #同类型文字密度
#BUFFER 100
#OFFSET -180 -180
#FORCE true #文字交叉
PARTIALS true
ANTIALIAS TRUE
PARTIALS false
POSITION cl
ANGLE auto
#PARTIALS false
END
END
CLASS
NAME "<=1000"
EXPRESSION ([roadclass] = 41000)
STYLE
COLOR 255 0 0
SYMBOL 1
SIZE 2
END
LABEL
encoding gbk
TYPE truetype
FONT "YaHei"
SIZE 10
MINSIZE 0
MINFEATURESIZE 60 #文字密度
COLOR 0 0 0
#shadowsize 1 1
#SHADOWCOLOR 128 128 128
#BACKGROUNDSHADOWCOLOR 0 255 0
#BACKGROUNDSHADOWSIZE 10 10
#backgroundcolor 0 200 0
OUTLINECOLOR 255 255 255 #文字描边色
MINDISTANCE 100 #同类型文字密度
#BUFFER 100
#OFFSET -180 -180
#FORCE true #文字交叉
PARTIALS true
ANTIALIAS TRUE
PARTIALS false
POSITION cl
ANGLE auto
PARTIALS false
END
END
END
LAYER
NAME "POLYGON"
TYPE POLYGON
STATUS DEFAULT
CONNECTIONTYPE postgis
CONNECTION "user=postgres password=mapabc dbname=test host=localhost"
DATA "the_geom from test"
PROJECTION
"init=epsg:4326"
END

#DATA "region"
CLASSItem "name"
#LABELITEM "NAME"
CLASS
#LABEL
#TYPE TRUETYPE
#FONT YaHei
#SIZE 0.5SELECT AddGeometryColumn('','poi_point','the_geom','4326','POINT',2);
#OUTLINECOLOR 255 255 255
#END
#COLOR 255 255 255
#OUTLINECOLOR 192 192 192
LABEL
encoding gbk
TYPE truetype
FONT "YaHei"
SIZE 10

COLOR 0 0 0
shadowsize 0 0
#BACKGROUNDSHADOWCOLOR 0 255 0
#BACKGROUNDSHADOWSIZE 10 10
#backgroundcolor 0 200 0
SHADOWCOLOR 255 255 255
ANTIALIAS TRUE
PARTIALS FALSE
POSITION cc
PARTIALS true
END
METADATA
autore "Marco Negretti"
END

STYLE
#COLOR 255 153 102
OUTLINECOLOR 0 0 204
SYMBOL 1
SIZE 1
END

END
END




LAYER
NAME "POLYGON"
TYPE POLYGON
#STATUS DEFAULT
CONNECTIONTYPE postgis
CONNECTION "user=postgres password=mapabc dbname=test host=localhost"
DATA "area from ceshi_area"
PROJECTION
"init=epsg:4326"
END

#DATA "region"
CLASSItem "name"
LABELITEM "name"
TRANSPARENCY 30
TRANSFORM true
CLASS
#LABEL
#TYPE TRUETYPE
#FONT YaHei
#SIZE 0.5
#OUTLINECOLOR 255 255 255
#END
#COLOR 255 255 255
LABEL
encoding gbk
TYPE truetype
FONT "YaHei"
SIZE 300
#MINSIZE 0
MINFEATURESIZE 1 #文字密度
COLOR 255 255 0
#shadowsize 1 1
#SHADOWCOLOR 128 128 128
#BACKGROUNDSHADOWCOLOR 0 255 0
#BACKGROUNDSHADOWSIZE 10 10
#backgroundcolor 0 200 0
#OUTLINECOLOR 255 255 255 #文字描边色
MINDISTANCE 1 #同类型文字密度
BUFFER 50
#OFFSET -10 -10
#FORCE true #文字交叉
ANTIALIAS true
POSITION cc
PARTIALS false
ANGLE auto
END
METADATA
autore "Marco Negretti"
END

STYLE
COLOR 255 153 102
OUTLINECOLOR 0 0 0
BACKGROUNDCOLOR 0 0 0
SYMBOL 0
SIZE 1
END
STYLE
COLOR 255 153 102
OUTLINECOLOR 0 0 0
BACKGROUNDCOLOR 255 0 0
SYMBOL 1
SIZE 10
END

END
END

LAYER
NAME "LINE"
TYPE LINE
STATUS DEFAULT
CONNECTIONTYPE postgis
CONNECTION "user=postgres password=mapabc dbname=test host=localhost"
DATA "line from ceshi_line"
LABELITEM "address"
#DATA "Road_polyline"
PROJECTION
"init=epsg:4326"
END
CLASS
NAME "line"
#EXPRESSION ([roadclass] = 44000)
#SIZE 3
STYLE
COLOR 0 0 0
SYMBOL 1
SIZE 3
END
STYLE
COLOR 0 0 0
SYMBOL 1
SIZE 2
END
STYLE
COLOR 255 255 255
SYMBOL 4
SIZE 2
END
LABEL
encoding gbk
TYPE truetype
FONT "YaHei"
SIZE 10
MINSIZE 0
MINFEATURESIZE 260 #文字密度
COLOR 255 0 0
#shadowsize 1 1
#SHADOWCOLOR 128 128 128
BACKGROUNDSHADOWCOLOR 0 255 0
#BACKGROUNDSHADOWSIZE 10 10
backgroundcolor 0 200 0
OUTLINECOLOR 255 255 255 #文字描边色
MINDISTANCE 300 #同类型文字密度
#BUFFER 100
#OFFSET -180 -180
#FORCE true #文字交叉
PARTIALS true
ANTIALIAS TRUE
PARTIALS false
POSITION cc
ANGLE AUTO
PARTIALS false
END
END
END
LAYER
NAME "point"
TYPE point
#STATUS DEFAULT
CONNECTIONTYPE postgis
CONNECTION "user=postgres password=mapabc dbname=test host=localhost"
DATA "point from ceshi_point"
PROJECTION
"init=epsg:4326"
END
LABELITEM "name"
CLASSITEM "eid"
CLASS
NAME "112"
STYLE
COLOR 0 0 0
SYMBOL "guodao"
SIZE 30
END
EXPRESSION "418"
#text "109"
LABEL
encoding gbk
TYPE truetype
FONT "YaHei"
SIZE 10
#MINSIZE 0
MINFEATURESIZE 1 #文字密度
COLOR 255 255 0
#shadowsize 1 1
#SHADOWCOLOR 128 128 128
#BACKGROUNDSHADOWCOLOR 0 255 0
#BACKGROUNDSHADOWSIZE 10 10
#backgroundcolor 0 200 0
#OUTLINECOLOR 255 255 255 #文字描边色
MINDISTANCE 1 #同类型文字密度
BUFFER 50
#OFFSET -10 -10
#FORCE true #文字交叉
ANTIALIAS true
POSITION cc
PARTIALS false
ANGLE auto
WRAP "1"
END
END
END
LAYER
NAME "point1"
TYPE point
STATUS DEFAULT
CONNECTIONTYPE postgis
CONNECTION "user=postgres password=mapabc dbname=test host=localhost"
DATA "point from ceshi_point"
PROJECTION
"init=epsg:4326"
END
LABELITEM "name"
CLASSITEM "eid"
CLASS
SYMBOL "guodao"
SIZE 30
EXPRESSION "418"
LABEL
encoding gbk
TYPE truetype
FONT "YaHei"
SIZE 10
#MINSIZE 0
#MINFEATURESIZE 10 #文字密度
COLOR 255 0 0
#shadowsize 1 1
#SHADOWCOLOR 128 128 128
#BACKGROUNDSHADOWCOLOR 0 255 0
#BACKGROUNDSHADOWSIZE 10 10
backgroundcolor 0 200 0
OUTLINECOLOR 255 255 255 #文字描边色
#MINDISTANCE 10 #同类型文字密度
#BUFFER 10
#OFFSET -10 -10
#FORCE true #文字交叉
ANTIALIAS true
POSITION auto
PARTIALS false
ANGLE auto
WRAP "j"
END
END
END


LAYER
NAME "grid"
METADATA
"DESCRIPTION" "Grid"nt"
TYPE point
#STATUS DEFAULT
CONNECTIONTYPE postgis
CONNECTION "user=postgres password=mapabc dbname=test host=localhost"
DATA "point from ceshi_point"
PROJECTION
"init=epsg:4326"
END
LABELITEM "name"
CLASSITEM "eid"
CLASS
NAME "112"
STYLE
COLOR 0 0 0
SYMBOL "guodao"
SIZE 30
END
EXPRESSION "418"
#text "109"
LABEL
encoding gbk
TYPE truetype
FONT "YaHei"
SIZE 10
#MINSIZE 0
MINFEATURESIZE 1 #文字密度
COLOR 255 255 0
#shadowsize 1 1
#SHADOWCOLOR 128 128 128
#BACKGROUNDSHADOWCOLOR 0 255 0
#BACKGROUNDSHADOWSIZE 10 10
#backgroundcolor 0 200 0
#OUTLINECOLOR 255 255 255 #文字描边色
MINDISTANCE 1 #同类型文字密度
BUFFER 50
#OFFSET -10 -10
#FORCE true #文字交叉
ANTIALIAS true
POSITION cc
PARTIALS false
ANGLE auto
WRAP "1"
END
END
END
LAYER
NAME "point1"
TYPE point
STATUS DEFAULT
CONNECTIONTYPE postgis
CONNECTION "user=postgres password=mapabc dbname=test host=localhost"
DATA "point from ceshi_point"
PROJECTION
"init=epsg:4326"
END
LABELITEM "name"
CLASSITEM "eid"
CLASS
SYMBOL "guodao"
SIZE 30
EXPRESSION "418"
LABEL
encoding gbk
TYPE truetype
FONT "YaHei"
SIZE 10
#MINSIZE 0
#MINFEATURESIZE 10 #文字密度
COLOR 255 0 0
#shadowsize 1 1
#SHADOWCOLOR 128 128 128
#BACKGROUNDSHADOWCOLOR 0 255 0
#BACKGROUNDSHADOWSIZE 10 10
backgroundcolor 0 200 0
OUTLINECOLOR 255 255 255 #文字描边色
#MINDISTANCE 10 #同类型文字密度
#BUFFER 10
#OFFSET -10 -10
#FORCE true #文字交叉
ANTIALIAS true
POSITION auto
PARTIALS false
ANGLE auto
WRAP "j"
END
END
END


LAYER
NAME "grid"
METADATA
"DESCRIPTION" "Grid"
END
TYPE LINE
STATUS DEFAULT
CLASS
NAME "Graticule"
COLOR 0 0 0
LABEL
COLOR 255 0 0
FONT yahei
TYPE truetype
SIZE 8
POSITION AUTO
PARTIALS FALSE
BUFFER 2
OUTLINECOLOR 255 255 255
END
END
PROJECTION
"init=epsg:4326"
END
GRID
LABELFORMAT DDMM
# LABELFORMAT '%g°' # dec degrees with symbol
MAXARCS 10
MAXINTERVAL 10
MAXSUBDIVIDE 2
# LABELFORMAT '%7.0f m' # nice if a projected SRS used
# MININTERVAL 20000
# MAXSUBDIVIDE 2
END
END
END

END
TYPE LINE
STATUS DEFAULT
CLASS
NAME "Graticule"
COLOR 0 0 0
LABEL
COLOR 255 0 0
FONT yahei
TYPE truetype
SIZE 8
POSITION AUTO
PARTIALS FALSE
BUFFER 2
OUTLINECOLOR 255 255 255
END
END
PROJECTION
"init=epsg:4326"
END
GRID
LABELFORMAT DDMM
# LABELFORMAT '%g°' # dec degrees with symbol
MAXARCS 10
MAXINTERVAL 10
MAXSUBDIVIDE 2
# LABELFORMAT '%7.0f m' # nice if a projected SRS used
# MININTERVAL 20000
# MAXSUBDIVIDE 2
END
END
END

2008年11月5日星期三

mapserver+tilecache

1、要使用tilecache,就得使用mapseerver的python_mapscript[离线表情]在编译好的mapserver目录下,找到面向python的mapscript文件夹,运行setup.py build ,setup.py install。
2、安装tilecache的python模块。到tilecache的根目录下,运行setup.py build ,setup.py install。
3、安装APACHE及python模块。
4、修改apache配置,以便加载tilecache:
在需要运行tilecache的apache映射目录加入以下内容
Options Indexes FollowSymLinks
Options Indexes FollowSymLinks ExecCGI

AddHandler mod_python .py
AddHandler python-program .py
PythonHandler TileCache.Service
PythonOption TileCacheConfig /opt/apache/htdocs/tilecache.cfg #tilecache的配置文件路径
AllowOverride None
PythonDebug On

5、测试tilecache:修改tilecache.cgi为tilecache.py,启动apache,浏览器:./tilecache.py??LAYERS=basic&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&SRS=EPSG:4326&BBOX=-180,-90,0,90&WIDTH=256&HEIGHT=256,成功运行就说明成功了。

下面就是具体应用了。
修改
tilecache.cfg,如下:
[vmap0]
type=MapServer
mapfile=testcall.map

修改Service.py,使默认情况下调用固定的参数。如:layer=vmap0 v=mgmaps等。

修改Tile类,在Layer.py里,添加属性作为生成目录的参数。注意要在初始化的时候完成赋值,和X,Y,Z一样。同时修改tile规则。这里修改为:
def bounds (self):
import math
zoom=self.z
x=self.x
y=self.y
zoomfactor = math.pow(2.0, zoom)

#printf("X: %i Y: %i Z: %i\n",x,y,zoom);
SPHEREMERC_GROUND_SIZE = 20037508.34*2
tilesize = SPHEREMERC_GROUND_SIZE / zoomfactor
minx = (x * tilesize) - (SPHEREMERC_GROUND_SIZE / 2.0)
maxx = ((x + 1) * tilesize) - (SPHEREMERC_GROUND_SIZE / 2.0)
miny = (SPHEREMERC_GROUND_SIZE / 2.0) - ((y + 1) * tilesize)
maxy = (SPHEREMERC_GROUND_SIZE / 2.0) - (y * tilesize)
return (minx, miny, maxx, maxy)

修改MGMaps.py,让他在初始Tile时添加初始参数。如:userId

修改MapServer.py,接受Tile的属性,进行特殊数据源的处理。

修改Disk.py(GoogleDisk.py),修改其建目录规则,这里在layer下加入
"%s" % int(tile.userId),

完成以上操作后再运行setup.py build ,setup.py install,重新安装tilecache。

运行./tilecache.py?zoom=10&x=105&y=48&userId=8,再到图片cache目录下查看其生成路径。