CN106384371B - 一种基于矢量瓦片的地图绘制方法 - Google Patents
一种基于矢量瓦片的地图绘制方法 Download PDFInfo
- Publication number
- CN106384371B CN106384371B CN201610835974.0A CN201610835974A CN106384371B CN 106384371 B CN106384371 B CN 106384371B CN 201610835974 A CN201610835974 A CN 201610835974A CN 106384371 B CN106384371 B CN 106384371B
- Authority
- CN
- China
- Prior art keywords
- data
- map
- tile
- vector
- vector tile
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000001131 transforming effect Effects 0.000 claims abstract description 12
- 238000013507 mapping Methods 0.000 claims description 18
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 8
- 238000013500 data storage Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000000547 structure data Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/206—Drawing of charts or graphs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/06—Topological mapping of higher dimensional structures onto lower dimensional surfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/12—Panospheric to cylindrical image transformations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Remote Sensing (AREA)
- Processing Or Creating Images (AREA)
- Instructional Devices (AREA)
Abstract
本发明提供一种基于矢量瓦片的地图绘制方法,通过读取地图绘制参数;将地图绘制参数进行计算并变换坐标生成地图画布;判断地图图层数据参数是否存在于本地数据源信息总表中,如果存在,则将存在于本地数据源信息总表中的地图图层数据参数作为本地数据;如果不存在,则将不存在于本地数据源信息总表中的地图图层数据参数作为在线数据;从本地数据和在线数据中分别获取数据库数据和矢量瓦片集数据;将数据库数据和矢量瓦片集数据分别添加到地图画布中对应的图层,并绘制地图。本发明方法支持多源异构数据,操作简单,能够在高分辨率的矢量瓦片绘图基础上,有效解决注记错位和边缘切割的问题。
Description
技术领域
本发明涉及瓦片地图技术领域,尤其是涉及一种基于矢量瓦片的地图绘制方法。
背景技术
随着国民经济的不断发展、国家基础地理信息数据不断丰富和完善,地图作为数据信息可视化的载体对上级的决策发挥着越来越重要的作用。地图的绘制主要有基于栅格瓦片和矢量瓦片技术。但栅格瓦片技术地理要素样式不易更新并且不易得到高分率的地图,实际中多采用矢量瓦片技术。
实现方案一般为先根据实际地理区域确定所需要的瓦片,再将每个瓦片单独渲染成图片并拼接,最后截取实际图幅大小输出。此方案对多数据源的支持不佳,实现较为复杂。另外在瓦片拼接的过程中容易造成注记错位和重复的问题,并且最后的的截取操作会造成注记的截断,这些都不符合高性能地图绘制的要求。
发明内容
本发明的目的在于提供一种基于矢量瓦片的地图绘制方法,支持多源异构数据,操作简单,能够在高分辨率的矢量瓦片绘图基础上,有效解决注记错位和边缘切割的问题。
第一方面,本发明实施例提供了一种基于矢量瓦片的地图绘制方法,所述方法包括;
读取地图绘制参数;
将所述地图绘制参数进行计算并变换坐标生成地图画布;
从本地数据源信息总表中查找是否存在地图图层数据参数;
如果存在,则将存在于所述本地数据源信息总表中的地图图层数据参数作为本地数据;
如果不存在,则将不存在于所述本地数据源信息总表中的地图图层数据参数作为在线数据;
从所述本地数据和所述在线数据中分别获取数据库数据和矢量瓦片集数据;
将所述数据库数据和所述矢量瓦片集数据分别添加到所述地图画布中对应的图层,并绘制地图。
结合第一方面,本发明实施例提供了第一方面第一种可能的实施方式,所述将所述地图绘制参数进行计算并变换坐标生成地图画布包括:
将所述地图绘制参数进行计算,得到瓦片坐标和地图图像的像素尺寸;
使用球面墨卡托模块将经纬度坐标范围变换为投影坐标范围;
加载样式说明文件,将所述瓦片坐标、所述地图图像的像素尺寸和所述投影坐标范围通过引擎生成所述地图画布。
结合第一方面,本发明实施例提供了第一方面第二种可能的实施方式,所述从所述本地数据和所述在线数据中分别获取数据库数据和矢量瓦片数据包括:所述本地数据通过读取目标数据的配置说明文件获取所述数据库数据。
结合第一方面第二种可能的实施方式,本发明实施例提供了第一方面第三种可能的实施方式,所述从所述本地数据和所述在线数据中分别获取数据库数据和矢量瓦片集数据还包括:
所述在线数据通过发送Http请求获取矢量瓦片数据,将绘图区域内的所有所述矢量瓦片数据合并,生成矢量瓦片集数据。
结合第一方面第三种可能的实施方式,本发明实施例提供了第一方面第四种可能的实施方式,,所述在线数据通过发送Http请求获取矢量瓦片数据,将绘图区域内的所有所述矢量瓦片数据合并,生成矢量瓦片集数据包括:
将所述在线数据的地理坐标替换成瓦片地理坐标得到所述瓦片数据网络地址,发送Http请求得到所述矢量瓦片数据;
将所述矢量瓦片数据进行格式转换,并将所述矢量瓦片数据按数据层进行地理要素合并,生成所述矢量瓦片集数据。
结合第一方面第四种可能的实施方式,本发明实施例提供了第一方面第五种可能的实施方式,所述地理要素包括面要素,所述将所述矢量瓦片数据按数据层进行地理要素合并包括:
建立瓦片间的邻接表,所述邻接表初始值为0;
根据与相邻瓦片不相交的所述面要素,直接将所述矢量瓦片数据进行合并;
根据与所述相邻瓦片相交的所述面要素,如果所述邻接表的值为1,则继续遍历所述瓦片;
根据与所述相邻瓦片相交的所述面要素,如果所述邻接表的值为0,则将所述矢量瓦片数据进行合并,并同时将所述邻接表的值更新为1。
结合第一方面第五种可能的实施方式,本发明实施例提供了第一方面第六种可能的实施方式,所述将所述矢量瓦片数据按数据层进行地理要素合并还包括:
根据与所述瓦片的边缘不相交的所述面要素,直接将所述矢量瓦片数据进行合并;
根据与所述瓦片的边缘相交的所述面要素,用所述瓦片边缘对所述面要素进行切割,截取相交面数据;
将所述相交面数据进行合并。
结合第一方面第四种可能的实施方式,本发明实施例提供了第一方面第七种可能的实施方式,所述地理要素还包括点要素和线要素,所述将所述矢量瓦片数据按数据层进行地理要素合并还包括:
根据所述点要素和所述线要素,直接将所述矢量瓦片数据进行合并。
结合第一方面,本发明实施例提供了第一方面第八种可能的实施方式,所述地图绘制参数包括区域经纬度范围、缩放级别、制图分辨率、瓦片原始大小和地图样式说明中的一种或几种。
结合第一方面,本发明实施例提供了第一方面第九种可能的实施方式,所述数据库数据包括主机号、端口号、数据库中地理字段名、空间引用标识符、数据库名、用户名、密码、数据查询语句和地理范围中的一种或几种。
本发明提供一种基于矢量瓦片的地图绘制方法,通过读取地图绘制参数;将地图绘制参数进行计算并变换坐标生成地图画布;从本地数据源信息总表中查找是否存在地图图层数据参数;判断地图图层数据参数是否存在于本地数据源信息总表中,如果存在,则将存在于本地数据源信息总表中的地图图层数据参数作为本地数据;如果不存在,则将不存在于本地数据源信息总表中的地图图层数据参数作为在线数据;从本地数据和在线数据中分别获取数据库数据和矢量瓦片集数据;将数据库数据和矢量瓦片集数据分别添加到地图画布中对应的图层,并绘制地图。本发明方法支持多源异构数据,操作简单,能够在高分辨率的矢量瓦片绘图基础上,有效解决注记错位和边缘切割的问题。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于矢量瓦片的地图绘制方法流程图;
图2为本发明实施例提供的一种基于矢量瓦片的地图绘制方法流程图中步骤S102的流程图;
图3为本发明实施例提供的一种基于矢量瓦片的地图绘制方法流程图中步骤S106的流程图;
图4为本发明实施例提供的一种基于矢量瓦片的地图绘制方法中获取本地数据流程图;
图5为本发明实施例提供的一种基于矢量瓦片的地图绘制方法中获取在线数据流程图;
图6为本发明实施例提供的一种基于矢量瓦片的地图绘制方法中获取在线数据中第一种面要素合并流程图;
图7为本发明实施例提供的一种基于矢量瓦片的地图绘制方法中获取在线数据中第二种面要素合并流程图;
图8为本发明实施例提供的一种基于矢量瓦片的地图绘制方法中获取在线数据和第一种面要素合并流程图;
图9为本发明实施例提供的一种基于矢量瓦片的地图绘制方法中获取在线数据和第二种面要素合并流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有的实现方案一般先根据实际地理区域确定所需要的瓦片,再将每个瓦片单独渲染成图片并拼接,最后截取实际图幅大小输出。此方案对多数据源的支持不佳,实现较为复杂。另外在瓦片拼接的过程中容易造成注记错位和重复的问题,并且最后的的截取操作必然造成注记的截断,这些都不符合高性能地图绘制的要求。
本发明提供一种基于矢量瓦片的地图绘制方法,通过读取地图绘制参数;将地图绘制参数进行计算并变换坐标生成地图画布;从本地数据源信息总表中查找是否存在地图图层数据参数;判断地图图层数据参数是否存在于本地数据源信息总表中,如果存在,则将存在于本地数据源信息总表中的地图图层数据参数作为本地数据;如果不存在,则将不存在于本地数据源信息总表中的地图图层数据参数作为在线数据;从本地数据和在线数据中分别获取数据库数据和矢量瓦片集数据;将数据库数据和矢量瓦片集数据分别添加到地图画布中对应的图层,并绘制地图。本发明方法支持多源异构数据,操作简单,能够在高分辨率的矢量瓦片绘图基础上,有效解决注记错位和边缘切割的问题。
下面通过实施例进行详细描述。
图1为本发明实施例提供的一种基于矢量瓦片的地图绘制方法流程图。
参照图1,该方法包括如下步骤:
步骤S101,读取地图绘制参数;
具体地,地图绘制参数包括,区域经纬度范围bbox,缩放级别zoom,制图分辨率Scale,瓦片原始大小Tilesize以及地图样式说明Xml。
其中,bbox范围即为需要绘制地图的实际地理区域。zoom为当前绘图所在的级别是比例尺的体现,不同级别所展现的地理要素不同。Scale参数设置的是地图图像的分辨率,为1是表示72dpi,4表示288dpi。Tilesize为提供瓦片的服务器端瓦片原始大小,默认为256像素。Xml中包含地图的图层、风格、规则、符号和数据等说明。
步骤S102,将地图绘制参数进行计算并变换坐标生成地图画布;
这里,利用abaculus模块计算,得出瓦片地理坐标坐标[z][x][y]以及地图图像的像素尺寸width和height。
具体地,abaculus模块是一个开源库,主要用于将瓦片拼接在一起生成静态地图。
其中,使用Spherical Mercator(球面墨卡托)模块将经纬度坐标范围变换为webMercator投影坐标范围。
步骤S103,从本地数据源信息总表中查找是否存在地图图层数据参数,如果存在,则执行步骤S104;如果不存在,则执行步骤S105;
步骤S104,将存在于本地数据源信息总表中的地图图层数据参数作为本地数据;
具体地,本地数据通过查询PostGIS数据库获得。
其中,PostGIS是对象-关系型数据库系统PostgreSQL的一个扩展,提供空间对象、空间索引、空间操作函数和空间操作符等空间信息服务功能,并支持所有的空间数据类型,这些类型包括:点(POINT)、线(LINESTRING)、多边形(POLYGON)、多点(MULTIPOINT)、多线(MULTILINESTRING)、多多边形(MULTIPOLYGON)和集合对象集(GEOMETRYCOLLECTION)等。
步骤S105,将不存在于本地数据源信息总表中的地图图层数据参数作为在线数据;
这里,在线数据通过发送http请求获取瓦片数据。
步骤S106,从本地数据和在线数据中分别获取数据库数据和矢量瓦片集数据;
这里,在线获取的瓦片数据,并将绘图区域内所有瓦片数据合并。
步骤S107,将数据库数据和矢量瓦片集数据分别添加到地图画布中对应的图层,并绘制地图。
具体地,按样式中图层顺序依次添加数据,用Mapnik引擎中render接口实现地图的绘制。
其中,该步骤中按Map中layer的先后顺序遍历,依次将步骤S106中所得到的数据加入到Map中。将数据作为一个整体进行绘制,有效的解决了注记错位以及边缘切割的问题。
这里,Mapnik支持多种数据源格式,如:shape,PostGIS,pgraster,raster,gdal,org,osm,geojson等。
数据一定要按顺序添加,Mapnik在绘制地图的过程中先绘制样式里面最前面的数据层,并将其作为底图,其他层按顺序叠加在前面的图层上。绘制过过程中存在着严格的先后顺序。
进一步的,如图2所示,上述实施例基于矢量瓦片的地图绘制方法中,步骤S102可采用如下步骤实现,包括:
步骤S201,将地图绘制参数进行计算,得到瓦片坐标和地图图像的像素尺寸;
这里,利用abaculus模块计算,得出瓦片地理坐标坐标[z][x][y]以及地图图像的像素尺寸width和height。
具体地,abaculus模块是一个开源库,主要用于将瓦片拼接在一起生成静态地图。
步骤S202,使用球面墨卡托模块将经纬度坐标范围变换为投影坐标范围;
其中,使用Spherical Mercator模块将经纬度坐标范围bbox转变为web Mercator投影坐标范围bbox’。Spherical Mercator模块是一个用于Mercator坐标系,屏幕像素坐标系和经纬度坐标系间的相互转换工具。
这里,墨卡托(Mercator)投影,又名“等角正轴圆柱投影”。“等角”特性,保证了对象的形状的不变性,也保证了方向和相互位置的正确性。Web墨卡托投影坐标系以整个世界范围,赤道作为标准纬线,本初子午线作为中央经线,两者交点为坐标原点,向东向北为正,向西向南为负。
赤道半径为6378137米,则赤道周长为2*PI*r=20037508.3427892,
X轴的取值范围:[-20037508.3427892,20037508.3427892],
Y轴的取值范围也限定在[-20037508.3427892,20037508.3427892]之间,故整体为正方形区域。
步骤S203,加载样式说明文件,将瓦片坐标、地图图像的像素尺寸和投影坐标范围通过引擎生成地图画布。
具体地,新建Mapnik画布Map,加载Xml样式说明文件,并设置Map范围为bbox’。
Mapnik是一个开源的地图渲染引擎,他的功能是把数据形式的地图,包含一些地理对象,如地图、层、数据源、特征和地理几何等,通过一个样式表的定义,渲染成位图格式,用来提供WMS服务。Xml里面定义了Map的配置信息,主要包括风格(style)对象和图层(layer)对象。地图中可以包含多个风格、多个图层,图层包含对应一个数据源及多个风格,风格包含多个规则,一个规则可以包含多种符号,不同的符号包含不同的属性设置。其中为避免注记被切割,需要把TextSymbolizer中avoid-edges设为true。Map加载Xml后,要约束其图幅地理范围,使其与目标区域一致。
具体地,如图3所示,上述实施例基于矢量瓦片的地图绘制方法中,步骤S106可采用如下步骤实现,包括:
步骤S301,本地数据通过读取目标数据的配置说明文件获取数据库数据;
具体地,若为本地数据,则读取目标数据的配置说明文件,获取PostGIS数据源的相关参数。
步骤S302,在线数据通过发送Http请求获取矢量瓦片数据,将绘图区域内的所有矢量瓦片数据合并,生成矢量瓦片集数据。
具体地,如图4本发明实施例提供的一种基于矢量瓦片的地图绘制方法中获取本地数据流程图所示,上述实施例基于矢量瓦片的地图绘制方法中,步骤S301可采用如下步骤实现,包括:
步骤S401,解析URL获取本地数据源说明文件入口;
步骤S402,读取配置说明文件获取数据库数据;
这里,数据库数据包括host,port,dbname,user,password,table,geome_field,srid,extent等。
这里type为数据源类型,host为主机号,port为端口号,geometry_field为数据库中地理字段名,srid为空间引用标识符,dbname为数据库名,user和password为用户名和密码,table为数据查询语句,extent为地理范围。
步骤S403,取出地图中相对应的图层数据。
其中,本地数据按照Mapnik PostGIS数据源的格式进行添加。
具体地,如图5本发明实施例提供的一种基于矢量瓦片的地图绘制方法中获取在线数据流程图所示,上述实施例基于矢量瓦片的地图绘制方法中,步骤S302可采用如下步骤实现,包括:
步骤S501,在线数据的地理坐标替换成瓦片地理坐标得到瓦片数据网络地址,发送Http请求得到矢量瓦片数据;
这里,为了便于数据的存储与快速传输,常对数据进行压缩。为此,在进行后续步骤之前先要对数据进行解压缩操作,以获得瓦片真实数据
步骤S502,矢量瓦片数据进行格式转换,并将矢量瓦片数据按数据层进行地理要素合并,生成矢量瓦片集数据。
这里,在线数据获取到的瓦片数据被转成geojson格式,按照Mapnik中内联的方式加入。
具体地,将矢量瓦片数据从pbf格式转成geojson格式。
pbf(Protocolbuffer Binary Format)是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或RPC数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。geojson是一种对各种地理数据结构进行编码的格式,基于Javascript对象表示法的地理空间信息数据交换格式,其对象可以表示几何、特征或者特征集合。geojson支持点、线、面、多点、多线、多面和几何集合这几种几何类型,里面的特征包含一个几何对象和其他属性,特征集合表示一系列特征。
将pbf格式数据转成geojson格式,实现了数据的解析。使用js对象对数据进行存储,便于数据的分析处理。
这里,每个瓦片只取出该区域所包含的地理要素特征,不包括瓦片buffer里面的数据。但面要素为多点构成的闭合多边形,其边缘难以和瓦片边缘刚好重合,会出现跨越多个瓦片的情形,在合并后会造成面要素重叠的问题。
具体地,如图6本发明实施例提供的一种基于矢量瓦片的地图绘制方法中获取在线数据中第一种面要素合并流程图所示,上述实施例基于矢量瓦片的地图绘制方法中,步骤S502可采用如下步骤实现,包括:
步骤S601,建立瓦片间的邻接表,邻接表初始值为0;
步骤S602,根据与相邻瓦片不相交的面要素,直接将矢量瓦片数据进行合并;
步骤S603,根据与相邻瓦片相交的所述面要素,如果邻接表的值为1,则继续遍历瓦片;
步骤S604,根据与相邻瓦片相交的所述面要素,如果邻接表的值为0,则将矢量瓦片数据进行合并,并同时将邻接表的值更新为1。
其中,直至所有数据被合并。此方法适用于面要素完整并需要显示轮廓的地理数据,如行政区划面数据。
具体地,如图7本发明实施例提供的一种基于矢量瓦片的地图绘制方法中获取在线数据中第二种面要素合并流程图所示,上述实施例矢量瓦片的地图绘制方法中,步骤S502还可采用如下步骤实现,包括:
步骤S701,根据与瓦片的边缘不相交的所述面要素,直接将矢量瓦片数据进行合并;
步骤S702,根据与瓦片的边缘相交的所述面要素,用瓦片边缘对面要素进行切割,截取相交面数据,将相交面数据进行合并。
此方法适用于不需要画轮廓的地理数据,如山影数据。
根据本发明的示例性实施例,地理要素还包括点要素和线要素,将矢量瓦片数据按数据层进行地理要素合并还包括:
根据点要素和所述线要素,直接将矢量瓦片数据进行合并。
根据本发明的示例性实施例,地图绘制参数包括区域经纬度范围、缩放级别、制图分辨率、瓦片原始大小和地图样式说明中的一种或几种。
根据本发明的示例性实施例,数据库数据包括主机号、端口号、数据库中地理字段名、空间引用标识符、数据库名、用户名、密码、数据查询语句和地理范围中的一种或几种。
本发明提供一种基于矢量瓦片的地图绘制方法,通过读取地图绘制参数;将地图绘制参数进行计算并变换坐标生成地图画布;判断地图图层数据参数是否存在于本地数据源信息总表中,如果存在,则将存在于本地数据源信息总表中的地图图层数据参数作为本地数据;如果不存在,则将不存在于本地数据源信息总表中的地图图层数据参数作为在线数据;从本地数据和在线数据中分别获取数据库数据和矢量瓦片集数据;将数据库数据和矢量瓦片集数据分别添加到地图画布中对应的图层,并绘制地图。本发明方法支持多源异构数据,操作简单,能够在高分辨率的矢量瓦片绘图基础上,有效解决注记错位和边缘切割的问题。
图8为本发明实施例提供的一种基于矢量瓦片的地图绘制方法中获取在线数据和第一种面要素合并流程图。
参照图8,包括如下步骤:
步骤S801,遍历在线数据的地理坐标;
步骤S802,在线数据的地理坐标替换成瓦片地理坐标得到瓦片数据网络地址;
步骤S803,发送Http请求得到矢量瓦片数据;
步骤S804,将矢量瓦片数据进行格式转换,
步骤S805,将矢量瓦片数据按数据层进行地理要素合并,生成矢量瓦片集数据;
步骤S806,建立瓦片间的邻接表,邻接表初始值为0;
步骤S807,根据与相邻瓦片不相交的面要素,直接将矢量瓦片数据进行合并;
步骤S808,根据与相邻瓦片相交的面要素,如果邻接表的值为1,则继续遍历瓦片;
步骤S809,根据与相邻瓦片相交的面要素,如果邻接表的值为0,则将矢量瓦片数据进行合并,并同时将邻接表的值更新为1。
图9为本发明实施例提供的一种基于矢量瓦片的地图绘制方法中获取在线数据和第二种面要素合并流程图。
参照图9,包括如下步骤:
步骤S901,遍历在线数据的地理坐标;
步骤S902,在线数据的地理坐标替换成瓦片地理坐标得到瓦片数据网络地址;
步骤S903,发送Http请求得到矢量瓦片数据;
步骤S904,将矢量瓦片数据进行格式转换,
步骤S905,将矢量瓦片数据按数据层进行地理要素合并,生成矢量瓦片集数据;
步骤S906,根据与瓦片的边缘不相交的面要素,直接将矢量瓦片数据进行合并;
步骤S907,根据与瓦片的边缘相交的面要素,用瓦片边缘对面要素进行切割,截取相交面数据,将相交面数据进行合并。
其中,如果Map中包含多个在线数据源,则重复图8和图9中流程,直至将所有数据获取。
最后应说明的是:以上各实施例仅用于说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (6)
1.一种基于矢量瓦片的地图绘制方法,其特征在于,所述方法包括:
读取地图绘制参数;
将所述地图绘制参数进行计算并变换坐标生成地图画布;
从本地数据源信息总表中查找是否存在地图图层数据参数;
如果存在,则存在于所述本地数据源信息总表中的地图图层数据参数来自本地数据;
如果不存在,则不存在于所述本地数据源信息总表中的地图图层数据参数来自在线数据;
从所述本地数据和所述在线数据中分别获取数据库数据和矢量瓦片集数据,所述数据库数据为通过查询PostGIS数据库获得的矢量数据;
将所述数据库数据和所述矢量瓦片集数据分别添加到所述地图画布中对应的图层,得到绘图数据集,并基于所述绘图数据集绘制地图;
所述将所述地图绘制参数进行计算并变换坐标生成地图画布包括:
将所述地图绘制参数进行计算,得到瓦片坐标和地图图像的像素尺寸;
使用球面墨卡托模块将经纬度坐标范围变换为投影坐标范围;
加载样式说明文件,将所述瓦片坐标、所述地图图像的像素尺寸和所述投影坐标范围通过引擎生成所述地图画布;
所述从所述本地数据和所述在线数据中分别获取数据库数据和矢量瓦片集数据还包括:
将所述在线数据的地理坐标替换成瓦片地理坐标得到所述瓦片数据网络地址,发送Http请求得到所述矢量瓦片数据;
将所述矢量瓦片数据进行格式转换,并将所述矢量瓦片数据按数据层进行地理要素合并,生成所述矢量瓦片集数据;
所述地理要素包括面要素,所述将所述矢量瓦片数据按数据层进行地理要素合并包括:
建立瓦片间的邻接表,所述邻接表初始值为0;
根据与相邻瓦片不相交的所述面要素,直接将所述矢量瓦片数据进行合并;
根据与所述相邻瓦片相交的所述面要素,如果所述邻接表的值为1,则继续遍历所述瓦片;
根据与所述相邻瓦片相交的所述面要素,如果所述邻接表的值为0,则将所述矢量瓦片数据进行合并,并同时将所述邻接表的值更新为1。
2.根据权利要求1所述一种基于矢量瓦片的地图绘制方法,其特征在于,所述从所述本地数据和所述在线数据中分别获取数据库数据和矢量瓦片数据包括:所述本地数据通过读取目标数据的配置说明文件获取所述数据库数据。
3.根据权利要求1所述一种基于矢量瓦片的地图绘制方法,其特征在于,所述将所述矢量瓦片数据按数据层进行地理要素合并还包括:
根据与所述瓦片的边缘不相交的所述面要素,直接将所述矢量瓦片数据进行合并;
根据与所述瓦片的边缘相交的所述面要素,用所述瓦片边缘对所述面要素进行切割,截取相交面数据;
将所述相交面数据进行合并。
4.根据权利要求1所述一种基于矢量瓦片的地图绘制方法,其特征在于,所述地理要素还包括点要素和线要素,所述将所述矢量瓦片数据按数据层进行地理要素合并还包括:
根据所述点要素和所述线要素,直接将所述矢量瓦片数据进行合并。
5.根据权利要求1所述一种基于矢量瓦片的地图绘制方法,其特征在于,所述地图绘制参数包括区域经纬度范围、缩放级别、制图分辨率、瓦片原始大小和地图样式说明中的一种或几种。
6.根据权利要求1所述一种基于矢量瓦片的地图绘制方法,其特征在于,所述数据库数据还包括主机号、端口号、数据库中地理字段名、空间引用标识符、数据库名、用户名、密码、数据查询语句和地理范围中的一种或几种。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610835974.0A CN106384371B (zh) | 2016-09-20 | 2016-09-20 | 一种基于矢量瓦片的地图绘制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610835974.0A CN106384371B (zh) | 2016-09-20 | 2016-09-20 | 一种基于矢量瓦片的地图绘制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106384371A CN106384371A (zh) | 2017-02-08 |
CN106384371B true CN106384371B (zh) | 2020-08-11 |
Family
ID=57935793
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610835974.0A Active CN106384371B (zh) | 2016-09-20 | 2016-09-20 | 一种基于矢量瓦片的地图绘制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106384371B (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107247785B (zh) * | 2017-06-15 | 2020-03-27 | 国家基础地理信息中心 | 一种静态只读地图文件生成方法和装置 |
CN107742314B (zh) * | 2017-09-08 | 2022-02-22 | 创新先进技术有限公司 | 图像生成方法、装置及设备 |
CN110047371B (zh) * | 2018-01-15 | 2022-03-25 | 北京四维图新科技股份有限公司 | 一种矢量电子地图的渲染方法及装置 |
CN108711356B (zh) * | 2018-02-08 | 2020-07-07 | 中国人民解放军61540部队 | 矢量地理pdf地图制作中地理目标与符号图形配准方法 |
CN108491427B (zh) * | 2018-02-08 | 2021-05-18 | 中国人民解放军61540部队 | Pdf瓦片地图及制作方法 |
CN110832886B (zh) * | 2018-06-06 | 2023-04-21 | 北京嘀嘀无限科技发展有限公司 | 确定位置标识符的系统和方法 |
CN109408657B (zh) * | 2018-11-13 | 2021-02-02 | 国家基础地理信息中心 | 一种超大规模空间数据快速制图方法及系统 |
CN110765298B (zh) * | 2019-10-18 | 2022-03-15 | 中国电子科技集团公司第二十八研究所 | 矢量数据几何属性解耦的瓦片编码方法 |
CN111159322B (zh) * | 2019-12-17 | 2020-09-08 | 广西交通设计集团有限公司 | 一种地图动态切片及服务端缓存的方法 |
CN111475592B (zh) * | 2020-03-04 | 2023-04-14 | 中山大学 | 一种面向矢量图形文件的流域地图制作方法 |
CN111862779A (zh) * | 2020-07-28 | 2020-10-30 | 南京赛飞地理信息技术有限公司 | 一种基于互联网共享的地理信息数字测图方法 |
CN111913633B (zh) * | 2020-08-03 | 2021-10-01 | 北京吉威空间信息股份有限公司 | 一种在拼接屏上实现地图同步交互方法和装置 |
CN112102425B (zh) * | 2020-08-18 | 2024-01-19 | 国家海洋信息中心 | 垂向剖面的要素值至地理地图的投影计算方法及系统 |
CN111930876A (zh) * | 2020-09-18 | 2020-11-13 | 四川鱼鳞图信息技术股份有限公司 | 一种地理信息系统引擎 |
CN112000902B (zh) * | 2020-10-28 | 2021-01-15 | 脉策(上海)智能科技有限公司 | 用于地图区域绘制的方法、电子设备和存储介质 |
CN112233240B (zh) * | 2020-10-29 | 2021-10-22 | 湖北亿咖通科技有限公司 | 三维矢量地图的三维矢量数据切片方法、装置及电子设备 |
CN112907689A (zh) * | 2020-11-06 | 2021-06-04 | 北京完美知识科技有限公司 | 历史地图的编辑方法及装置、存储介质、计算机设备 |
CN112559667B (zh) * | 2021-02-23 | 2021-05-25 | 北京简巨科技有限公司 | 地图编辑器、地图引擎、地图编辑系统、方法及存储介质 |
CN113470171B (zh) * | 2021-07-07 | 2024-01-30 | 西安震有信通科技有限公司 | 一种城市三维建筑可视化构建方法、终端设备及存储介质 |
CN113570717B (zh) * | 2021-07-29 | 2024-04-09 | 的卢技术有限公司 | 一种用于unity的渲染地图方法、电子设备及可读存储介质 |
CN113687755A (zh) * | 2021-08-23 | 2021-11-23 | 国电南瑞科技股份有限公司 | 图元化gis的实现装置、人机交互系统及使用方法 |
CN117333585B (zh) * | 2023-10-26 | 2024-05-07 | 山东省国土测绘院 | 一种基于矢量瓦片地图的注记处理方法及系统 |
CN117573917B (zh) * | 2024-01-19 | 2024-03-29 | 成都深瑞同华科技有限公司 | 一种地图图片截取方法、系统、电子设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101459901A (zh) * | 2008-12-30 | 2009-06-17 | 中国人民解放军国防科学技术大学 | 基于多级切片方式的矢量地图数据传输方法 |
CN101466082A (zh) * | 2008-12-30 | 2009-06-24 | 中国人民解放军国防科学技术大学 | 矢量地图数据的多级切片处理方法 |
EP2997546A2 (en) * | 2013-05-15 | 2016-03-23 | Google, Inc. | Efficient composition and rendering of graphical elements |
CN106055686A (zh) * | 2016-06-08 | 2016-10-26 | 武大吉奥信息技术有限公司 | 一种矢量瓦片切片方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100321399A1 (en) * | 2009-06-18 | 2010-12-23 | Patrik Ellren | Maps from Sparse Geospatial Data Tiles |
CN103700060B (zh) * | 2013-12-26 | 2016-09-21 | 北京大学 | 一种海量任意形状多边形的快速可视化方法 |
CN105022731B (zh) * | 2014-04-16 | 2018-08-03 | 北京极海纵横信息技术有限公司 | 一种地图矢量瓦片缓存的方法 |
CN105869202B (zh) * | 2015-01-21 | 2018-11-02 | 高德软件有限公司 | 电子地图的数字地面模型数据生成方法和装置 |
CN105069020B (zh) * | 2015-07-14 | 2018-09-21 | 国家信息中心 | 自然资源数据三维可视化方法和系统 |
CN105138678B (zh) * | 2015-09-11 | 2018-11-13 | 武汉云空间地理信息技术有限公司 | 一种地图瓦片数据的读取、分发方法及读取、分发系统 |
-
2016
- 2016-09-20 CN CN201610835974.0A patent/CN106384371B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101459901A (zh) * | 2008-12-30 | 2009-06-17 | 中国人民解放军国防科学技术大学 | 基于多级切片方式的矢量地图数据传输方法 |
CN101466082A (zh) * | 2008-12-30 | 2009-06-24 | 中国人民解放军国防科学技术大学 | 矢量地图数据的多级切片处理方法 |
EP2997546A2 (en) * | 2013-05-15 | 2016-03-23 | Google, Inc. | Efficient composition and rendering of graphical elements |
CN106055686A (zh) * | 2016-06-08 | 2016-10-26 | 武大吉奥信息技术有限公司 | 一种矢量瓦片切片方法及装置 |
Non-Patent Citations (2)
Title |
---|
Interactive visualization for massive POI using tiled feature strategy;Wenyou Fan 等;《2015 23rd International Conference on Geoinformatics》;20160114;第1-5页 * |
面向服务器集群的地理空间数据绘制及其优化方法;孙璐;《中国优秀硕士学位论文全文数据库基础科学辑》;20160315;第34-38、58-60页 * |
Also Published As
Publication number | Publication date |
---|---|
CN106384371A (zh) | 2017-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106384371B (zh) | 一种基于矢量瓦片的地图绘制方法 | |
CN105516311B (zh) | 一种电子地图全景图获取方法及系统 | |
CN101887595B (zh) | 基于四叉树索引的三维数字地球空间数据组织渲染方法 | |
Cecconi et al. | Adaptive zooming in web cartography | |
US8363068B1 (en) | Regional map zoom tables | |
CN108921943B (zh) | 一种基于车道级高精度地图的道路三维模型建模方法 | |
EP1426876A1 (en) | Geographical information system | |
CN105022731B (zh) | 一种地图矢量瓦片缓存的方法 | |
CN111080782A (zh) | 基于实景三维地理信息系统的可视化系统 | |
CN109086286A (zh) | 一种彩色地形图生产与发布方法 | |
Brovelli et al. | The power of Virtual Globes for valorising cultural heritage and enabling sustainable tourism: NASA World Wind applications | |
JP2012168069A (ja) | 地図情報処理装置、ナビゲーション装置、地図情報処理方法、およびプログラム | |
CN111666365A (zh) | 电子地图服务根据授权区域快速过滤显示的方法 | |
Capece et al. | A client-server framework for the design of geo-location based augmented reality applications | |
KR20010105569A (ko) | 3차원 부동산 지도정보 인터넷 서비스시스템 및 이를이용한 서비스방법 | |
She et al. | 3D building model simplification method considering both model mesh and building structure | |
CN117131297B (zh) | 一种基于浏览器的地理信息数据的快速发布方法 | |
Yamamoto et al. | On-demand generalization of road networks based on facility search results | |
CN104991993A (zh) | 一种场地信息图形的处理方法 | |
CN108470363A (zh) | 一种基于地理参考点和三角剖分的手绘地图移动定位方法 | |
CN116383328A (zh) | 一种测绘地理多元数据融合处理方法 | |
KR20010100609A (ko) | 지리정보 시스템의 지도정보 제공방법 | |
CN111737196B (zh) | 基于电力交易系统气象资源网格文本转矢量图方法及装置 | |
JP5638684B2 (ja) | 情報出力装置及び情報出力方法 | |
JP2012128350A (ja) | 情報出力装置及び情報出力方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |