GeoServer+mapbox发布矢量瓦片(一):创建美国区域显示

安装GeoServer

  • 使用Geoserver: geoserver-2.15.0.exe版本 和对应的vector tiles 插件
  • 参考:GeoServer+Mapbox

配置Geoserver 数据

  • Data_dir中的 美国各个州的shp作为数据源

跨域问题:

  • 跨域使用 jetty的两个jar文件: jetty-servlets-9.4.9.v20180320.jar jetty-util-9.4.9.v20180320.jar

  • 设置web.xml

              <filter>
                  <filter-name>cross-origin</filter-name>
                  <filter-class>org.mortbay.servlets.CrossOriginFilter</filter-class>
                  <init-param>
                      <param-name>allowedOrigins</param-name>
                      <param-value>*</param-value>
                  </init-param>
                  <init-param>
                      <param-name>allowedMethods</param-name>
                      <param-value>GET,POST</param-value>
                  </init-param>
                  <init-param>
                      <param-name>allowedHeaders</param-name>
                      <param-value>x-requested-with,content-type</param-value>
                  </init-param>
              </filter>
    
    

以及

        <filter-mapping>
            <filter-name>cross-origin</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>

编写mapbox 网页

        <!DOCTYPE html>
        <html>
        <head>
            <meta charset='utf-8' />
            <title>Join local JSON data with vector tile geometries</title>
            <meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no' />
            <!-- <script src='https://api.tiles.mapbox.com/mapbox-gl-js/v0.54.0/mapbox-gl.js'></script> -->
            <!-- <link href='https://api.tiles.mapbox.com/mapbox-gl-js/v0.54.0/mapbox-gl.css' rel='stylesheet' /> -->
            <script src='https://api.tiles.mapbox.com/mapbox-gl-js/v1.0.0/mapbox-gl.js'></script>
            <link href='https://api.tiles.mapbox.com/mapbox-gl-js/v1.0.0/mapbox-gl.css' rel='stylesheet' />
            <style>
                body { margin:0; padding:0; }
                #map { position:absolute; top:0; bottom:0; width:100%; }
            </style>
        </head>
        <body>
        <div id='map'>
        </div>
        <script>
            mapboxgl.accessToken ='pk.eyJ1IjoibG9uZ2xvbmd3YXl0b2dvIiwiYSI6ImNqdnZ6OWV6cTFnY240NG9nbmxnc2k5dTkifQ.hsbNl4QUNyn46nfbztiFpw';
            var map = new mapboxgl.Map({
                container: 'map', 
                style: 'mapbox://styles/mapbox/streets-v9', 
                center: [-99.637496,38.719526], 
                zoom: 4
            });
            map.on('load', function() {
                map.addSource('usa_states',{
                    'type':'vector',
                    'scheme':'tms',
                // 'tiles':['http://localhost:8080/geoserver/gwc/service/tms/1.0.0/myTest%3AbigBuildings@EPSG:900913@pbf/{z}/{x}/{y}.pbf']
                'tiles':['http://192.168.1.230:8080/geoserver/gwc/service/tms/1.0.0/mapbox%3Astates@EPSG%3A900913@pbf/{z}/{x}/{y}.pbf']
                });

                map.addLayer({
                'id':'states',
                'type':'fill',
                'source':'usa_states',
                'source-layer':'states',
                'paint':{
                    'fill-color':'#00ff00',
                    }
                },
                'waterway-label');
            });
        </script>
        </body>
        </html>

预览

其他参考:

Publishing a GeoServer Layer for use with Mapbox Styles

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值