前言:如何做一个属于自己的地图

首先我们首先定义什么叫做自己的地图。

我认为就是从数据到发布都可以自己控制或者说是可以发布到内网。只是有几点是可控的。

一、数据属于自己的

二、数据可以自己编辑

三、地图可以自己发布

四、从整体流程到发布都可以自己把控。

那么我从整体开发流程尽量简化一个文档。有不完善的地方清大家指教。

一、数据

从数据来说,对于一张地图来说最重要的就是数据。目前国内的数据采集都比较麻烦甚至涉密。

政府部门和官方机构:中国的交通运输部门、地方政府或城市规划部门可能会提供公开的路网数据。您可以通过官方网站、数据开放平台或相关部门的数据发布渠道来获取这些数据。

开放数据平台:一些开放数据平台可能会提供免费的中国路网数据,例如国家数据共享服务平台、城市数据开放平台等。您可以在这些平台上搜索并下载所需的路网数据。

第三方地图服务提供商:一些第三方地图服务提供商(如百度地图、高德地图)可能提供有关中国路网的数据API,可以通过这些API获取路网数据。您可能需要了解其使用条款和许可要求。

我们讲点现实的,其实中国大部分城市数据只有两个渠道。因为遇见的大部分政府手里的数据质量不高,其次很难获取并且不同城市的数据格式可能完全不同。

一、是图商 但是必须得有项目的合规性的证明 在一个需要几十W左右 成本比较高

二、开发数据平台 基本比较全的就是openstreetmap(osm)的。

这里我介绍一个下载osm数据的方案 。就是从科力地图的官网下载 。

菠萝头:OpenStreetMap(OSM)数据下载0 赞同 · 0 评论文章

科力地图 http://map.ahkeli.com/

省份/城市/县城 级别的数据最佳的下载方案。本质上是基于overpass网站进行下载。但是这个网站要进行一些代码的拼接很麻烦。所以为了方面用户下载,科力地图优化了整个下载流程。不需要进行一些代码的拼接。

科力地图有个数据下载页面。

通过这个搜索栏 可以进行城市名称的搜索。

在这里点击下载就好了。这里进行点击下载就可以进行省份/城市级别数据的下载了。因为这个数据下载源头是overpass网站。估计是动态切分的原理。所以下载速度不会很快。但是对于一些小城市或者县城来说是最佳选择。 因为大部分数据下载网站不会切分的特别细。所以导致一些县城的数据都得自己基于别的工具手动进行切分。

二、空间数据库

数据肯定是需要落地的。常见的关系型数据库大概就是3种 Mysql、oracle、postgres 。GIS行业内

最常用的反倒是oracle和postgres 。为啥不用Mysql呢? 肯定是因为mysql 对空间字段和空间算法支持的不够好了?

大数据部分的数据库也有部分 ,类似hbase,mongdb等 也会有部分空间函数。但是对大部分用户来说没有那么多数据量。

这里主要讲一下postgres和Postgis 。postgis是postgres数据库的一个插件。postgres数据库最大的优势也是可以加载各种插件来扩充自己的能力。PostGIS通过向PostgreSQL添加对空间数据类型空间索引空间函数的支持,将PostgreSQL数据库管理系统转换为空间数据库

PostGIS是一个用于存储和处理地理空间数据的空间数据库扩展,而Oracle Spatial和SQL Server(2008及更高版本)也提供了类似的功能。将普通数据库转变为空间数据库意味着扩展数据库的功能,使其能够有效地存储、查询和分析地理空间数据。

在空间数据库中,引入了特定的数据类型、索引和函数,以支持空间对象的存储和操作。这些要素的作用如下:

数据类型:空间数据库引入了专门的数据类型,如点(point)、线(line)和面(polygon),用于表示地理空间对象。这些数据类型允许存储和处理地理坐标信息,并提供了相应的操作和计算功能。

索引:空间数据库使用多维度空间索引,以提高对空间数据的查询性能。这些索引结构可以有效地处理空间关系查询,如邻近搜索、范围查询和交叉查询,以快速定位和检索空间对象。

函数:空间数据库提供了一系列内置的空间函数,可以执行各种空间操作和分析。这些函数允许进行空间属性查询(如计算面积、长度),以及空间关系查询(如判断两个对象的相交性、包含关系等),从而支持复杂的空间分析和查询需求。

通过结合这些要素,空间数据库能够有效地存储和处理地理空间数据,使其具备空间查询和分析的能力。这为地理信息系统(GIS)、位置分析和地理空间应用提供了强大的数据管理和处理功能

有了空间数据库之后,就不再需要专门的GIS数据引擎(GIS Data Engine)去处理和操纵空间数据了,应用程序只需要通过SQL语言就能轻松地操纵空间数据。

三、操作空间数据

空间数据的特质就是这类数据可以理解为形状,也就是人类很难直接操作数据。因为人类很难通过经纬度还原成图形。我举例一下

wkt格式

LINESTRING (116.397128 39.916527, 116.397800 39.916835, 116.398457 39.917180, 116.399123 39.917542)

geojson格式

{

  "type": "Feature",

  "properties": {},

  "geometry": {

    "type": "LineString",

    "coordinates": [

      [116.397128, 39.916527],

      [116.397800, 39.916835],

      [116.398457, 39.917180],

      [116.399123, 39.917542]

    ]

  }

}

所以操作空间数据必须得使用工具。

这里介绍几种工具

空间数据库工具 pgadmin4 和navicat

推荐操作空间数据使用pgadmin4 这个是专门为postgres数据库准备的数据库操作工具。并且可以对查询结果进行地图的查看 上面的是示意图也是通过这个工具出来的。提示一下设置坐标系为4326.

Navicat 就不做多介绍了 这个工具最大的优势可以链接多种数据库比如mysql、oracle、postgres

桌面gis工具 arcgis、qigs、supermap、josm

最常见的就是arcgis这是毋庸置疑的第一。这个软件也是大学里必须得学的软件。但是这个软件是收费的,但是中国嘛。这类软件一定有中国特质版本 大家自己百度吧。

qgis和supermap的桌面端 也是都可以用的 。 qgis是开源版本的桌面端的软件,比较轻量级但是也十分好用。

supermap也就是超图 是中国版本可以对标arcgis的版本。但是也是收费的哦!!!

地图慧3.0e.dituhui.com/editor

josm 就比较特殊了。这个是专门为osm数据准备的编辑工具。

网页端gis工具 超图网站 和osm官网 但是osm官网可能不好打开。

SuperMap Online-全面的在线GIS数据与应用平台www.supermapol.com/

osm官网虽然可以在线编辑,但是都是基于所有共享的数据。也就是你编辑的数据所有osm数据的使用者都可以共享。如果你对数据私密性要求的很高。千万别用osm官网编辑数据。并且我个人不太了解你实时编辑的数据是否下载的时候马上能用。是否有审核的流程和时间。

osm官网(openstreetmap)www.openstreetmap.org/#map=6/18.573/118.323

还有一个专门目前做交通为主的在线地图编辑网站。科力地图

科力地图(多人在线编辑地图)map.ahkeli.com/

科力地图的核心是可以将地图数据进行在线下载并且导入平台。

1.科力地图拥有多人编辑的能力,桌面端的应用没有办法应对大型对周期要求比较紧的项目。

2.科力地图提供了一套交通路网架构,可以直接让您从数据修改到项目部署一条龙支持。

3.科力地图提供了一套渲染架构,您直接可以从这个网站下载数据直接进行geoserver的渲染。

4.科力地图提供了多源数据绑定:

比如您从图商那拿到了数据,但是数据质量不高想修改部分数据但是图商没办法定制化修改。

比如你从各种厂商拿到不同的数据(路况、设备等),但是最后的项目想多源数据融合或者关联的办法。

总之关于路网的绝大部份解决方案我们都可以提供!!! 欢迎您找我们交流!!!

我们的未来也在高精地图 数字孪生等方向!! 您有定制化需求也可以找我们交流。

四、加载使用空间数据

如何加载或者使用数据呢?如果你想在你的网页里面使用地图或者说是空间数据。那么首先得有一个地图框架,国内大家比较熟悉的是高德和百度。

其实使用范围更大的前端地图框架有两种 openlayers 和leaflet。前端可以通过这两个框架来进行图层的加载。

Leaflet是一个轻量级的开源JavaScript库,专注于提供简单、灵活和易于上手的地图功能。它具有良好的文档和活跃的社区支持,适用于各种规模的项目。Leaflet支持多种地图图层、标记、矢量图形、交互操作等功能。它还提供了丰富的地图样式和插件,可以轻松扩展和定制地图应用。

OpenLayers是另一个功能强大的开源地图框架,提供了广泛的地图功能和高度可定制化的选项。OpenLayers支持多种地图投影、图层类型和数据源,包括瓦片地图、矢量数据、WMS/WMTS服务等。它具有强大的地图渲染和交互能力,支持地图缩放、平移、标记、查询、绘制等操作。OpenLayers还提供了丰富的API和模块化的架构,使开发者能够构建复杂的地图应用。

Leaflet和OpenLayers在使用方式和理念上有一些区别。Leaflet注重简洁和易用性,适合快速搭建基本的地图应用。OpenLayers则更加全面和功能丰富,适合需要更高级功能和复杂场景的项目。选择使用哪个框架取决于项目需求、开发经验和个人偏好。

其实从地图框架来说数据来自于两个部分,

一、地图底图

二、空间数据格式加载(geojson、wkt)类似的空间格式。

第一个大部分数据是必须得通过地图图层加载的。第一个是减少客户端的数据处理,因为大部分图层对于地图框架来说都是图片的加载。

第二个就是空间数据的加载,也就是可以进行用户交互的部分。使开发者能够构建复杂的地图应用。

这个部分也就是用户如何构建自己的地图应用的部分。可以根据自己的应用的进行不同逻辑的开发。下图就是我们开发的一个地图平台。

如何发布自己的地图图层呢 。 这个部分我在之后的文章给大家讲述。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,539评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,594评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,871评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,963评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,984评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,763评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,468评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,357评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,850评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,002评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,144评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,823评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,483评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,026评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,150评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,415评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,092评论 2 355

推荐阅读更多精彩内容