geoserver与OpenLayers配置入门.docx
《geoserver与OpenLayers配置入门.docx》由会员分享,可在线阅读,更多相关《geoserver与OpenLayers配置入门.docx(34页珍藏版)》请在冰豆网上搜索。
geoserver与OpenLayers配置入门
Geoserver与OpenLayers配置
2008年1月
目录
1准备工作4
1.1需要用到的程序和资料4
2地图格式转换方式
(一)5
3地图格式转换方式
(二)5
3.1解压地图5
3.2打开地图5
3.3导出图层6
3.4转换mif格式为shp格式6
4GeoServer安装配置6
4.1GeoServer安装6
4.2配置地图6
4.2.1登录geoserver7
4.2.2配置数据7
4.2.3新建数据集8
4.2.4新建FeatureType10
4.2.5应用保存配置12
4.2.6访问地图15
5Openlayers配置16
5.1测试页面16
5.2部署示例21
5.3查看效果21
5.4加上googlemap图层21
5.4.1申请Google地图API的key21
5.4.1.1将域名映射到本地21
5.4.2编辑html22
5.4.3查看效果22
6GeoServer高级设置23
6.1自定义图层的Style23
6.2查看图层的字段信息26
6.3在Tomcat上部署GeoServer27
6.4自定义名称空间28
7参考资料31
1准备工作
相关资料文件下载
1.1需要用到的程序和资料
1.JDK1.6:
安装好JDK1.6
2.MapInfoProfessional6.4SCP中文版或者8.5SCP英文版
安装好Mapinfo
3.geoserver1.5.4或者1.6.0Rc2
http:
//superb-
来源:
http:
//docs.codehaus.org/display/GEOS/Download
4.Openalyers2.5
http:
//www.openlayers.org/download/OpenLayers-2.5.zip
来源:
http:
//www.openlayers.org/
5.深圳地图一份
来源:
(这个地图只是局部信息,而且信息两很小,我重新找了份效果还不错的深圳局部地图)
6.地图格式转换工具
来源:
7.ApacheTomcat6.0.14
来源:
http:
//tomcat.apache.org/
2地图格式转换方式
(一)
Mapinfo8.5中,主菜单-->Tools-->UniversalTranslator-->UniversalTranslator
MapInfo6.5中,主菜单-->Tools-->工具-->通用转换器-->通用转换器。
(或者进入D:
\ProgramFiles\MapInfo\Professional\UT,运行IMUTGUI.EXE)
选择源文件格式,选择多个源文件,再选择输出文件夹,点ok开始进行转换,
IMUTGUI.exe实际是调用IMUT.exe来进行文件转换的。
对于字段名为中文的,需要先将字段名修改掉,否则编写Style的时候用中文字段可能无法正确读取
修改方法如下:
先打开地图,然后:
主菜单—>Window-->NewbrowserWindow(快捷键为F2),打开指定的表,
主菜单选择Browse(浏览)>PickFields(选取字段),PickFields对话框显示出来。
(我照上面没改出来,我是用转换方式二,先导出成mif文件,然后再用文本编辑器打开mif文件。
直接改的字段名)
Update:
最后知道了正确的改字段名的方法:
主菜单-->表-->维护-->表结构-->选择需要修改的表-->选中字段,在字段名输入新的字段名即可.
实际对应的MapBasic为:
AlterTable"Bguangdong"(renameKindKindaaa)Interactive
3地图格式转换方式
(二)
(该步操作是我走的弯路,仅做记录以备忘)
3.1解压地图
解压深圳地图到E:
\gis\深圳
3.2打开地图
启动Mapinfo,打开E:
\gis\深圳下面所有图层
3.3导出图层
主菜单-->Table-->Export-->选择要导出的图层,点Export.将图层导出为mif格式的文件。
3.4转换mif格式为shp格式
运行datatransfer.exe,选择格式和文件,进行转换。
4GeoServer安装配置
4.1GeoServer安装
解压geoserver-1.5.4a.bin.zip到E:
\gis\geoserver,
运行E:
\gis\geoserver\bin\startup.bat
4.2配置地图
打开浏览器,访问:
http:
//localhost:
8080/geoserver/
4.2.1登录geoserver
点“配置”,在登录界面输入用户名'admin',密码'geoserver'
4.2.2配置数据
登录成功之后,再点“配置”。
在配置界面,点“数据”。
在数据配置界面,点“数据库”。
4.2.3新建数据集
在Feature数据集配置界面,点“新建”
在新建界面,Feature数据描述类型,选择Shaperfile,Feature数据集ID,输入“szmap_bingguanjiudian”,点“新建”
(此时,由于地图信息还没部署,因此,先将shape格式的数据文件复制到E:
\gis\geoserver\data_dir\data\szmapnew。
)
在数据文件配置界面中,url填写为:
file:
data/szmapnew/bingguanjiudian_custom_point.shp
(表示对应E:
\gis\geoserver\data_dir\data\szmapnew\bingguanjiudian_custom_point.shp)
Charset填写为:
GBK,点“提交”。
4.2.4新建FeatureType
文件加载成功,进入FeatureType编辑界面,样式选择point,SRS填写为4326,点生成.
再点“提交”。
(千万不要勾上启用缓存,我就是勾上它,结果导致创建的FeaTureType无法保存,走了弯路)
4.2.5应用保存配置
然后先点左上角的“应用”,
再点“保存”。
重复上述步骤可配置多个图层。
数据集的信息保存在
E:
\gis\geoserver\data_dir\catalog.xml
featureTypes信息保存在E:
\gis\geoserver\data_dir\featureTypes
catalog.xml内容节选为:
data/szmapnew/jumindi_region.shp"/>
data/szmapnew/lvdi_region.shp"/>
data/szmapnew/shangsha_font_point.shp"/>
data/szmapnew/danwei_font_point.shp"/>
data/szmapnew/bingguanjiudian_custom_point.shp"/>
data/szmapnew/jiaotonggandao_region.shp"/>
data/szmapnew/daoluzhongxinxian_polyline.shp"/>
data/szmapnew/dise_region.shp"/>
(文件重新加载保存之后,原有的注释说明不见了。
)
4.2.6访问地图
回到首页欢迎界面,点“Mapbuilder客户端”
找到topp:
bingguanjiudian_custom_point,点Openlayers。
把地图缩放比例拉到最小,然后点其中一个标注点,网页下面会显示出查询到的信息。
5Openlayers配置
5.1测试页面
编写测试页面,内容如下:
xmlversion="1.0"encoding="UTF-8"?
>
DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Strict//EN""DTD/xhtml1-strict.dtd">
//www.w3.org/1999/xhtml">
OpenLayersmappreview
#map{
width:
800px;
height:
380px;
border:
1pxsolidblack;
}
//localhost:
8080/geoserver/openlayers/OpenLayers.js"type="text/javascript">
varmap;
varuntiled;
vartiled;
functionsetHTML(response){
OpenLayers.Util.getElement('nodelist').innerHTML=response.responseText;
};
functioninit(){
map=newOpenLayers.Map('map',{controls:
[],'projection':
'EPSG:
4326','units':
'degrees'});
OpenLayers.IMAGE_RELOAD_ATTEMPTS=5;
//setuptiledlayer
varbounds=newOpenLayers.Bounds(114.08473735,22.5444392,114.09911765000001,22.5517168)
tiled=newOpenLayers.Layer.WMS(
"topp:
danwei_font_point","http:
//localhost:
8080/geoserver/wms",
{
height:
'380',
width:
'800',
layers:
'topp:
danwei_font_point',
styles:
'',
srs:
'EPSG:
4326',
format:
'image/png',tiled:
'true',tilesOrigin:
"114.08473735,22.5444392"
},
{maxExtent:
bounds,maxResolution:
5.617304687505209E-5,projection:
"EPSG:
4326",buffer:
0}
);
map.addLayer(tiled);
jiaotonggandao_region=newOpenLayers.Layer.WMS(
"topp:
jiaotonggandao_region","http:
//localhost:
8080/geoserver/wms",
{
height:
'392',
width:
'800',
layers:
'topp:
jiaotonggandao_region',
styles:
'',
srs:
'EPSG:
4326',transparent:
"true",
format:
'image/png',tiled:
'true',tilesOrigin:
"114.0836293,22.543578500000002"
},
{maxExtent:
bounds,maxResolution:
6.49429687499814E-5,projection:
"EPSG:
4326",buffer:
0}
);
map.addLayer(jiaotonggandao_region);
daoluzhongxinxian_polyline=newOpenLayers.Layer.WMS(
"topp:
daoluzhongxinxian_polyline","http:
//localhost:
8080/geoserver/wms",
{
height:
'392',
width:
'800',
layers:
'topp:
daoluzhongxinxian_polyline',
styles:
'',
srs:
'EPSG:
4326',transparent:
"true",
format:
'image/png',tiled:
'true',tilesOrigin:
"114.0836293,22.543578500000002"
},
{maxExtent:
bounds,maxResolution:
6.49429687499814E-5,projection:
"EPSG:
4326",buffer:
0,isBaseLayer:
false}
);
map.addLayer(daoluzhongxinxian_polyline);
shangsha_font_point=newOpenLayers.Layer.WMS(
"topp:
shangsha_font_point","http:
//localhost:
8080/geoserver/wms",
{
width:
'800',
layers:
'topp:
shangsha_font_point',
styles:
'',
srs:
'EPSG:
4326',
height:
'381',
format:
'image/png',transparent:
"true",tiled:
'true',tilesOrigin:
"114.0838415,22.543650900000003"
},
{maxExtent:
bounds,maxResolution:
6.20898437499462E-5,projection:
"EPSG:
4326",buffer:
0,isBaseLayer:
false}
);
map.addLayer(shangsha_font_point);
//map.addLayer(tiled);
//setupuntiledlayer
untiled=newOpenLayers.Layer.WMS.Untiled(
"topp:
danwei_font_point","http:
//localhost:
8080/geoserver/wms",
{
height:
'380',
width:
'800',
layers:
'topp:
danwei_font_point',
styles:
'',
srs:
'EPSG:
4326',
format:
'image/png'
},
{maxExtent:
bounds,maxResolution:
5.617304687505209E-5,projection:
"EPSG:
4326"}
);
untiled.ratio=1;
untiled.setVisibility(false,false);
//map.addLayer(untiled);
//setupcontrolsandinitialzooms
map.addControl(newOpenLayers.Control.PanZoomBar({div: