mapbox离线部署概述

编程入门 行业动态 更新时间:2024-10-06 06:52:41

mapbox<a href=https://www.elefans.com/category/jswz/34/1767604.html style=离线部署概述"/>

mapbox离线部署概述

主要过程

  1. 下载mapbox字体文件和图标文件

  2. 下载行政区划shapefile文件

  3. 到geoserver官网下载对应geoserver版本的输出扩展格式文件Vector Tiles,解压后将文件拷贝到geoserver\webapps\geoserver\WEB-INF\lib目录下

  4. 用geoserver将shapefile文件发布成服务(相关文章很多,这里不详细写)

  5. 有时候存在geoserver跨域问题,主要解决方案

    (1)下载官方的cors压缩包,解压得到两个jar包,两个jar包文件放入geoserver目录下web容器的类库文件夹中(GeoServer 2.11.1\webapps\geoserver\WEB-INF\lib)

    (2)打开geoserver目录(或者其他服务端项目)下web容器的中的xml配置文件(GeoServer 2.11.1\webapps\geoserver\WEB-INF\web.xml),增加一个过滤器

	<filter><filter-name>cros</filter-name><filter-class>com.mapsharp.server.SimpleCORSFilter</filter-class></filter><filter-mapping><filter-name>cros</filter-name><url-pattern>/*</url-pattern></filter-mapping>


(3)将com文件夹放入classes中(添加过滤器代码和过滤器路由代码),com文件夹中包含一个SimpleCORSFilter.class文件

  1. 加载出离线地图

核心代码

添加geoserver发布的底图服务图层

var mapStyle = {version: 8,sprite: "http://localhost:8085/sprite/sprite",glyphs: "http://localhost:8085/glyphs/fonts/{fontstack}/{range}.pbf",sources: {"osm-tiles": {type: "vector",scheme: "tms",tiles: ["http://localhost:8082/geoserver/cite/wms?service=WMS""&version=1.1.0""&request=GetMap""&layers=cite:worldCountry3857""&styles=&bbox={bbox-epsg-3857}""&width=256&height=256""&srs=EPSG:3857""&format=application/x-protobuf;type=mapbox-vector""&TRANSPARENT=TRUE"],tileSize: 512}},layers: [// 背景颜色{id: "background",type: "background",paint: {"background-color": 'black'},interactive: true},// 行政区划图层{id: "basemap",type: "fill",source: "osm-tiles","source-layer": "worldCountry3857",paint: {"fill-outline-color": "#666666", // 行政区划线颜色"fill-color": "#3C3C3C", // 图层颜色"fill-opacity": 0.8, // 透明度"fill-antialias": true,"fill-translate-anchor": 'viewport'},},// 地名标注图层{id: "basemapSymbol",type: "symbol",source: "osm-tiles","source-layer": "worldCountry3857", // "osmtiles" "wordCountry"layout: {"visibility": "visible","text-field": ["get", "NAME"],"text-font": ['Open Sans Semibold,Arial Unicode MS Bold'], // 本地字体目录中要有此文件夹"text-size": 12,"symbol-avoid-edges": true, // 是否避免文本超出切片边界"text-allow-overlap": false, // 是否允许文本重叠"text-optional": false},paint: {"text-color": "#AAAAAA", // 地名文本颜色},interactive: true},]}var map = new mapboxgl.Map({container: 'map',style: mapStyle,zoom: 3,center: [112.08, 27.54]});

更多推荐

mapbox离线部署概述

本文发布于:2024-03-09 17:47:50,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1725642.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:离线   mapbox

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!