webgis

更新时间:2023-03-13 12:20:08 阅读: 评论:0

香辣蟹的做法大全-关于颜色的儿歌

webgis
2023年3月13日发(作者:会有时)

WebGIS离线解决⽅案

1、背景

在离线环境下(局域⽹中)的GIS系统中如何使⽤地图?这⾥的地图主要指的是地图底图,有了底图切⽚数据,我们就可以看到地图,在上⾯加上⾃⼰的业务数据图层,进⾏相

关操作。

要在离线环境下看到GIS地图,就要有底图切⽚数据,地图的底图切⽚数据在⼀定时间内是不会变化的,可以使⽤⼀些地图下载器下载地图切⽚,如这个。

在CS系统中可以基于来做,参考《》。

下⾯介绍下Web系统如何使⽤GIS切⽚数据,开发webGIS系统。

2、使⽤GeoWebCache发布WMS服务

Geowebcache是基于Java的Web开源项⽬,主要⽤于缓存各种WMS数据源的地图⽡⽚,它实现了多种服务接⼝,包括WMS-C,WMTS,TMS,KML。

Geowebcache作为⼀个独⽴的开源项⽬,在最近被Geover的⼏个版本所集成,主要是对发布的WMS图层建⽴缓存切⽚。

服务发布步骤:

1)官⽹下载,直接解压得到⽂件,将该⽂件直接拷贝⾄tomcat⽬录下的webapps下即可,启动tomcat会对war包进⾏解压。

2)修改geowebcache的配置⽂件。该⽂件在Tomcat的webappsgeowebcacheWEB-INF下,修改如下:

Setthelocationofthetemplateconfigurationfiletocopyovertothe

cachedirectoryifonedoesn'talreadyexist.

修改gwcXmlConfig实例化时使⽤固定路径,该路径可以为任意新建路径⽂件夹。Geowebcache启动之后会检查此⽂件夹下是否存在⽂件,如果不存在则按模板

新建⽴并读取使⽤,如果存在则直接读取使⽤。

3)修改第2步中的⽂件:

ARCGIS-Demo

D:

D:GisMapLayer_alllayers

在layers节点⾥添加arcgisLayer节点(默认⽣成的的layers节点有许多其他冗余数据,可删除可保留)。Name节点表⽰待添加图层的名称(这⾥配置为

ARCGIS-Demo),titlingscheme节点为⽂件的路径,tileCachePath为⽡⽚数据的路径。

4)⽡⽚地图的准备

其中为配置⽂件,为显⽰区域约束⽂件,_alllayers⽂件夹下则存放了切⽚数据,为切⽚状态情况记录(可直接删除)。

通过⽡⽚下载器下载⽡⽚地图,然后⽣成的切⽚数据_alllayers⽂件夹:

L01-L10表⽰地图缩放级数,按照ArcGIS切⽚⽬录组织,切⽚命名规则也和ArcGIS切⽚数据命名规则⼀致。(、和_alllayers在同级⽬录)。

5)启动tomcat,继⽽启动Geowebcache服务,浏览器访问localhost:8080/geowebcache,如果⼀切正确的话可以看到下⾯的页⾯

该页⾯简单说明了Geowebcache的⼀些情况。

点击“Alistofallthelayersandautomaticdemos”连接可以看到下⾯:

该页⾯显⽰了配置的图层信息。图中可以看到只配置了⼀个名字为ARCGIS-Demo的图层,使⽤的EPSG3857坐标系,发布的图⽚格式为png格式,点击png链

接即可看到⽡⽚地图。

这⾥地图显⽰的级别和坐标系配置都来⾃⽂件。这⾥的前端js使⽤的是Openlayers。查看⽹页源码:

ARCGIS-DemoEPSG:3857_ARCGIS-Demoimage/png

body{font-family:sans-rif;font-weight:bold;font-size:.8em;}

body{border:0px;margin:0px;padding:0px;}

#map{width:85%;height:85%;border:0px;padding:0px;}

varmap,demolayer;

//tsthechonmodifiableparameter

functiontParam(name,value){

str="ewParams({"+name+":'"+value+"'})"

//alert(str);

eval(str);

}

_PER_INCH=96.0;

eLoadErrorColor='transparent';

functioninit(){

varmapOptions={

resolutions:[156543.033928,78271.5169639999,39135.7584820001,19567.8792409999,9783.93962049996,4891.96981024998,2445.98490512499,1222.99245256249,611.49622628138,305.748113140558,152.874056570411,76.437028285

projection:tion('EPSG:3857'),

maxExtent:(-20037508.342787,-20037508.342780996,20037508.342780996,20037508.342787),

units:"meters",

controls:[]

};

map=('map',mapOptions);

trol(mBar({

position:(2,15)

}));

trol(tion());

trol(($('scale')));

trol(osition({element:$('location')}));

demolayer=(

"ARCGIS-Demo","../rvice/wms",

{layers:'ARCGIS-Demo',format:'image/png'},

{tileSize:(256,256),

tileOrigin:(-2.7E7,2.7E7)});

er(demolayer);

Extent((-20037497.2108,-19929239.113399997,20037497.2108,18379686.9965));

//ThefollowingisjustforGetFeatureInfo,opledonotneedthis

er('click',map,function(e){

mentById('nodelist').innerHTML="Loading...pleawait...";

varparams={

REQUEST:"GetFeatureInfo",

EXCEPTIONS:"application/_xml",

BBOX:ent().toBBOX(),

X:.x,

Y:.y,

INFO_FORMAT:'text/html',

QUERY_LAYERS:[0].,

FEATURE_COUNT:50,

Layers:'ARCGIS-Demo',

Styles:'',

Srs:'EPSG:3857',

WIDTH:.w,

HEIGHT:.h,

format:"image/png"};

L("../rvice/wms",params,this,tHTML,tHTML);

(e);

});

}

functiontHTML(respon){

mentById('nodelist').innerHTML=Text;

};

ViewCode

个⼈⽐较喜欢leaflet这个GISjavascript库,使⽤leaflet加载GeoWebCache发布的这个服务:

Leaflet-OfflineDemo

varmapCenter=(32.1280,118.7742);//南京

varmap=('map',{

center:mapCenter,

zoom:4

});

varwmsLayer=("http://localhost:8080/geowebcache/rvice/wms",{

layers:'ARCGIS-Demo',

format:'image/png'

});

(map);

varmarker=(mapCenter);

er(marker);

pup("

Hello!;}

").openPopup();

3、使⽤⾃定义的Http服务

GeowebCache本质上就是个Http服务,通过请求参数获取配置⽂件中的路径中的切⽚数据,返回给请求⽅。

我们可以⾃⼰写个独⽴的Http服务,从数据库中读取切⽚数据返回给请求⽅,参考这个项⽬:

其中“1818940751”是下载器下载的地图类型,z/x/y分别是zoom和地图切⽚⾏列号。

前端js使⽤leaflet加载:

varamapNormalUrl='http://localhost:8899/788865972/{z}/{x}/{y}';

varamapNormalLayer=yer(amapNormalUrl,{

minZoom:1,

maxZoom:18,

attribution:'⾼德普通地图'

});

varmapCenter=(32.1280,118.7742);//南京

varmap=('map',{

center:mapCenter,

zoom:9,

minZoom:1,

maxZoom:18,

layers:[amapNormalLayer]

});

前端js可以⾃定义投影Projection算法,⽽国内google地图、⾼德地图和腾讯地图都是标准的墨卡托投影,可以直接⽤leaflet加载。

配合⼀些画图插件,再配合⼀些后台POI检索服务,如:

则能做出如下效果:

离线webGIS搭建步骤:

1、使⽤下载地图切⽚。

2、使⽤启动地图切⽚服务。

总结:介绍了如何使⽤下载的离线切⽚数据在局域⽹环境下发布WebGIS地图服务,前端配合使⽤⼀些js插件,实现web下空间数据的检索。

在Github上开源了⼀些代码,包含⾃定义的Http地图服务,和⼀个简单的页⾯WebGISDemo。

地址:

更新于2020年08⽉:

1.使⽤springboot重构了

2.添加了⼀种POI数据源“station”

3.整理了IndexSearchService、MapHttpService的代码

附件:

<?xmlversion="1.0"encoding="utf-8"?>

xmlns:xsi='/2001/XMLSchema-instance'

xmlns:xs='/2001/XMLSchema'

xmlns:typens='/schemas/ArcGIS/10.1'>

-20037497.2108

-19929239.113399997

20037497.2108

18379686.9965

<?xmlversion="1.0"encoding="utf-8"?>

PROJCS["WGS_1984_Web_Mercator_Auxiliary_Sphere",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.94

-20037700

-30241100

148923141.92838538

-100000

10000

-100000

10000

0.001

0.001

0.001

true

3857

-20037508.342787001

20037508.342787001

256

256

96

0

591657527.591555

156543.

1

295828763.79577702

78271.5

2

147914381.89788899

39135.758482000099

3

73957190.948944002

19567.879240999901

4

36978595.474472001

9783.9396204999593

5

18489297.737236001

4891.9698102499797

6

9244648.8686180003

2445.9849051249898

7

4622324.4343090001

1222.9924525624899

8

2311162.2171550002

611.49622628138002

9

1155581.108577

305.748

10

577790.55428899999

152.874056570411

11

288895.27714399999

76.437

12

144447.638572

38.2598

13

72223.8

19.199

14

36111.9

9.5546285356341496

15

18055.954822

4.77739

16

9027.9774109999998

2.38865713397468

17

4513.9887049999998

1.50501

18

2256.994353

0.597699

19

1128.4971760000001

0.298582

PNG

0

fal

esriMapCacheStorageModeExploded

0

参考:

本文发布于:2023-03-13 12:20:08,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/zhishi/a/167868120827858.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:webgis.doc

本文 PDF 下载地址:webgis.pdf

上一篇:初中生物教学计划
下一篇:返回列表
标签:webgis
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
热门标签
Copyright ©2019-2022 Comsenz Inc.Powered by © 实用文体写作网旗下知识大全大全栏目是一个全百科类宝库! 优秀范文|法律文书|专利查询|