设为首页 加入收藏

TOP

Web GIS 离线解决方案(三)
2017-10-17 09:21:16 】 浏览:8859
Tags:Web GIS 解决方案
et.css" /> <script src="https://unpkg.com/leaflet@1.0.3/dist/leaflet.js"></script> </head> <body> <div id="map" style="height:100vh;" ></div> <script type="text/java script"> var mapCenter = new L.LatLng(32.1280, 118.7742); //南京 var map = new L.Map('map', { center : mapCenter, zoom : 4 }); var wmsLayer = L.tileLayer.wms("http://localhost:8080/geowebcache/service/wms", { layers: 'ARCGIS-Demo', format: 'image/png' }); wmsLayer.addTo(map); var marker = new L.Marker(mapCenter); map.addLayer(marker); marker.bindPopup("<p>Hello! ;}</p>").openPopup(); </script> </body> </html>

3、使用自定义的Http服务

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

我们可以自己写个独立的Http服务,从数据库中读取切片数据返回给请求方。

切片请求地址类似:http://localhost:8899/1818940751/{z}/{x}/{y}

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

前端js使用leaflet加载:

var amapNormalUrl = 'http://localhost:8899/788865972/{z}/{x}/{y}';
var amapNormalLayer = new L.TileLayer(amapNormalUrl, {
    minZoom : 1,
    maxZoom : 18,
    attribution : '高德普通地图'
});

var mapCenter = new L.LatLng(32.1280, 118.7742); //南京
var map = new L.Map('map', {
        center : mapCenter,
        zoom : 9,
        minZoom: 1,
        maxZoom: 18,
        layers : [ amapNormalLayer ]
});

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

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

使用Lucene索引和检索POI数据

使用Solr进行空间搜索

则能做出如下效果:

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

自定义的Http地图服务代码:https://github.com/luxiaoxun/Code4Java

附件:

conf.cdi

<?xml version="1.0" encoding="utf-8" ?>
<EnvelopeN xsi:type='typens:EnvelopeN' 
    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
    xmlns:xs='http://www.w3.org/2001/XMLSchema' 
    xmlns:typens='http://www.esri.com/schemas/ArcGIS/10.1'>
    
    <XMin>-20037497.2108</XMin>
    <YMin>-19929239.113399997</YMin>
    <XMax>20037497.2108</XMax>
    <YMax>18379686.9965</YMax>

</EnvelopeN>

conf.xml

<?xml version="1.0" encoding="utf-8"?>
<CacheInfo xsi:type="typens:CacheInfo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:typens="http://www.esri.com/schemas/ArcGIS/10.1">
    <TileCacheInfo xsi:type="typens:TileCacheInfo">
        <SpatialReference xsi:type="typens:ProjectedCoordinateSystem">
            <WKT>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.0174532925199433]],PROJECTION["Mercator_Auxiliary_Sphere"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",0.0],PARAMETER["Auxiliary_Sphere_Type",0.0],UNIT[&
首页 上一页 1 2 3 4 5 下一页 尾页 3/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇动态添加 Redis 密码认证 下一篇使用 Eureka 实现服务注册与发现

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目