美文网首页MapBoxs
MapBox+iServer构建地图服务

MapBox+iServer构建地图服务

作者: Justice57 | 来源:发表于2017-09-30 23:40 被阅读0次

最近终于闲下来,偷偷做点自己的项目。于是向表弟勒索了支付宝账号,开了个学生服务器。接下来搞点事情。去Github上转一转,遭遇一只叫MapBox的开源项目(附上GitHub地址 https://github.com/mapbox/mapbox-gl-js)。发现MapBox渲染的地图效果还不错,但是由于是国外的服务器,数据服务完全访问不到,于是开始了步一个构建地图服务的不归路。走了很多弯路,下面直接挑干货。
1.下载MapBox官网的MapBox-gl的Demo 会发现相应的代码

<script>
    mapboxgl.accessToken = 'pk.eyJ1IjoiYW56aGlodW4iLCJhIjoiY2lsdnhjdjN5MDFvMHVia3NpYTlnbmUzaSJ9.twlExCjpR7uwH2IiFC7aDA';
    var map = new mapboxgl.Map({
      container: 'map', // container id
      style: 'mapbox://styles/mapbox/streets-v9', //stylesheet location
      center: [-74.50, 40], // starting position
      zoom: 9 // starting zoom
    });
  </script>

但是Mapbox的服务器访问不了,我们只能找另外的服务了。

2.OpenStreetMap(简称OSM,中文是公开地图)是一个网上地图协作计划,目标是创造一个内容自由且能让所有人编辑的世界地图。OSM也属于瓦片地图服务,支持MapBox的渲染。我们可以从OSM服务器下载相应的瓦片。

"sources": {
  "osm-tiles": {
    "type": "raster",
    'tiles': [
          "http://c.tile.openstreetmap.org/{z}/{x}/{y}.png" 
      ],
    'tileSize': 256
  }
}

mapBox-gl的style支持第三方的资源 可以在style中添加“sources”属性,type指定为“raster” 表示栅格切片数据源。由 Mapbox 托管的数据源,the "url" 值应以 mapbox://mapid形式表示。我们选择用osm托管的数据源。osm链接支持a.tile,b.tile,c.tile(具体区别和应用可维基百科查询)
我还在添加了geocoder插件可用于地图地点的搜索mapbox-gl-geocoder链接
这样我们就可以在服务器上部署一个tomcat项目。如下

地图.png

但是osm的数据源访问的数据有点慢,再搞点事情。

3.iServer 是基于跨平台 GIS 内核的云 GIS 应用服务器,是云端一体化技术的重要组成部分。我们可以用IServer做一个缓存服务。(iServer 是收费的但是可以试用3个月)

docker search iserver  //安装完docker后搜索iserver
docker pull supermap/iserver
docker run --name iserver1 -d -p 1521:8090 -v /home/data:/home supermap/iserver  
// -p表示映射端口 前面表示宿主机的端口 后面表示容器端口  
// -v表示 宿主机和容器的共享文件
// 不要问我为什么用1521ORACAL端口 因为我忘了设置阿里云安全组了 手动滑稽 

进入后配置管理员账号,进入管理员界面

发布服务.png
选择rest服务
缓存.png
SMTiles 表示缓存图层生成sqlite数据库本地文件
然后进入服务列表选择我们刚创建的服务,默认有normal,transport,humanitarian,cycle四种样式
但是没有想要的mapbox样式 于是在服务中配置
QQ截图20170930231748.png
我选择了mapbox的map_outdoor样式
http://c.tiles.mapbox.com/v4/mapbox.outdoors/{z}/{x}/{y}.png?access_token={key}
然后修改js中的链接地址为 http://{ip}:1521/iserver/services/map-OSM/rest/maps/OSM/zxyTileImage.png?z={z}&x={x}&y={y}
重新部署启动tomcat就ok了

总结:
这个地图看看地形还是不错的,玩了好一会地图,缓存文件已经5G了。。。iserver还支持分布式切片服务,可以把切片分布式先下载到本地(= = 我的1G内存40G磁盘9.9元包邮渣服务器还是算了吧,别吐槽我的服务器慢了)还有本来想用水经注万能下载器下一堆切片到服务器,但是一个中国的数据到22层级都快PB级别了还是算了吧。有能力的同学可以试试配个mongoDB试试。
(ps:markdown好强大,都不怎么会用。国庆到了,好好休息,大家国庆快乐。)

相关文章

  • MapBox+iServer构建地图服务

    最近终于闲下来,偷偷做点自己的项目。于是向表弟勒索了支付宝账号,开了个学生服务器。接下来搞点事情。去Github上...

  • 产品思维30讲

    看人 我的存在感 构建 能力圈 资源人脉 角色 感官 点线面体 势能 选择 用户体验 地图 服务蓝图 峰终值

  • Openlayers实例-加载天地图

    天地图地图服务采用OGC的WMTS标准,使用Openlayers可以很方便的对天地图的图层进行叠加,天地图地图服务...

  • ArcGIS Server地图切片之二——发布地图服务

    上一篇我们进行了地图校准,这里详细说说怎样发布地图服务及使用leafletJs调用地图服务。 发布地图服务 lea...

  • 使用ArcGIS Pro发布独立Server服务

    1、创建Server独立连接 2、发布普通地图服务、影像服务方式在服务器连接上面右键发布->地图服务->选择地图文...

  • cesium调用天地图服务

    cesium调用天地图服务 cesium调用天地图服务 全球影像中文注记服务 全球矢量中文注记服务

  • 构建自己的阅读地图

    【标题】构建自己的阅读地图 【字数】576 【正文】 今天一整天的时间,我都在构建自己的阅读地图,晚上听完猫叔的分...

  • 构建阅读地图

    判断书是否值得读 1这本书是否能指导我 2是否适合自己(在书的领域有困惑) 3我有其它的方法去学习到这个领域吗 1...

  • 构建知识地图

    知识地图法:通过整体视角去了解学习的客体 #按自己思维方式构建知识地图和框架,并将其他领域链接起来 关键:明确划分...

  • iOS高德地图WMS服务&&mapbox地图WMS服务

    网络地图服务(WMS) 网络地图服务(WMS)利用具有地理空间位置信息的数据制作地图。其中将地图定义为地理数据...

网友评论

    本文标题:MapBox+iServer构建地图服务

    本文链接:https://www.haomeiwen.com/subject/xeonextx.html