使用osm数据+postgreSQL+tegola+openlayers搭建轻量化矢量切片环境

tegola简介

Tegola是一个矢量切片服务器,提供Mapbox Vector Tiles,支持PostGIS和GeoPackage数据提供程序。用户文档可以在tegola.io找到

tegola特征

  • 原生几何处理(简化,裁剪,制作有效,交集,包含,缩放,翻译)
  • 符合Mapbox Vector Tile v2规范。
  • 具有自动生成样式的嵌入式查看器,可实现快速数据可视化
  • 支持PostGIS和GeoPackage数据提供程序。可扩展的设计,以支持其他数- 据提供商。
  • 支持多个缓存后端:file,s3,redis,azure blob store。
  • 通过单个切片(ZXY),纬度/经度边界和ZXY切片列表缓存种子和失效。
  • 并行化的瓷砖服务和几何处理。
  • 支持Web Mercator(3857)和WGS84(4326)预测。
  • 支持AWS Lambda。

导入osm数据

可以参考我前面的博文,使用最新编译的osm2pgsql不用处理default.style中的注释了,直接使用就可以了,我是用的是北京的数据,格式是pbf的。
最新版下载:https://ci.appveyor.com/project/openstreetmap/osm2pgsql

配置tegola的config.toml

参考官方配置说明,osm2pgsql导入数据的空间参考标识符 (SRID) 是3857不是经纬度的4326。
我的配置如下:

[webserver]
port = ":8080"

# register data providers
[[providers]]
name = "beijing"           # provider name is referenced from map layers
type = "postgis"        # the type of data provider. currently only supports postgis
host = "localhost"      # postgis database host
port = 5432             # postgis database port
database = "beijing"       # postgis database name
user = "postgres"         # postgis database user
password = "123456"           # postgis database password
srid = 3857             # The default srid for this provider. If not provided it will be WebMercator (3857)


  [[providers.layers]]
  name = "point"
  tablename = "planet_osm_point"  
  geometry_fieldname = "way"
  id_fieldname = "osm_id"
  fields = [ "name" ] 
  #sql = "SELECT name,ST_AsBinary(way) AS way,name,osm_id FROM planet_osm_point WHERE way && !BBOX!"

  [[providers.layers]]
  name = "road"
  geometry_fieldname = "way"
  id_fieldname = "osm_id"
  sql = "SELECT ST_AsBinary(way) AS way,name,osm_id FROM planet_osm_line WHERE way && !BBOX!"



[[maps]]
name = "beijing"

  [[maps.layers]]
  provider_layer = "beijing.point"
  min_zoom = 13
  max_zoom = 20

  [[maps.layers]]
  provider_layer = "beijing.road"
  min_zoom = 10
  max_zoom = 20

我这里只配置了两个图层,一个点(point),13-20层显示,一个线(road),10-20层显示。

启动tegola

在tegola所在目录打开cmd,输入 tegola serve 即可启动

2019-04-18 09:04:18 [INFO] root.go:56: Loading config file: config.toml
2019-04-18 09:04:18 [INFO] config.go:173: loading local config (config.toml)
2019-04-18 09:04:19 [INFO] server.go:81: starting tegola server on port :8080

输入tegola -h可以获取帮助

编写前端显示html



  
  
    Tegola Sample
    
    
    
  
  
    

结果展示

使用osm数据+postgreSQL+tegola+openlayers搭建轻量化矢量切片环境_第1张图片

你可能感兴趣的:(webGis)