研究开源地图组建,服务搭建,初步方案为:

服务器操作系统:CentOS7

地图数据:OSM

地图瓦片渲染:Mapnik + CartoCSS

WMS服务:MapProxy TileStache

WEB前端:OpenLayers

地图底图样式编辑:iD

第一步:

第二步:

PostGIS的创建和初始化

我们选Postgresql作为我们的GIS数据库,关于Postgresql的安装,之前已经有文章介绍过(centOS7下同样适用)。PostGIS需要额外的安装和配置。PostGIS的安装我们同样使用Yum的方式。

1.1 安装PostGIS

PostGIS 安装过程需要依赖一些相关库文件,为了方便安装,首先我们需要添加EPEL源,然后再安装PostGIS

rpm -Uvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm

yum list postgis* #查看能够安装的最新版本

-------------------------------------------------

postgis.x86_64 2.0.7-1.el7 @epel

postgis2_94.x86_64 2.1.8-1.rhel7 @pgdg94

可安装的软件包

postgis-docs.x86_64 2.0.7-1.el7 epel

postgis-utils.x86_64 2.0.7-1.el7 epel

postgis2_94-client.x86_64 2.1.8-1.rhel7 pgdg94

postgis2_94-debuginfo.x86_64 2.1.8-1.rhel7 pgdg94

postgis2_94-devel.x86_64 2.1.8-1.rhel7 pgdg94

postgis2_94-docs.x86_64 2.1.8-1.rhel7 pgdg94

postgis2_94-utils.x86_64 2.1.8-1.rhel7 pgdg94

------------------------------------------------------

yum install postgis2_94

1.2 创建地理空间数据库

目前如果导入OSM的全球数据的话,导入后至少需要480G的存储空间。所以根据需求请选择合适的存储路径来创建数据库。

mkdir /home/DATA/pgtbs_osmgis #目录请自行决定

chown postgres /home/DATA/pgtbs_osmgis

然后在psql下创建表空间,为了方便管理,我们再创建一个PG用户osmgis

psql -Upostgres CREATE USER osmgis WITH PASSWORD 'password'; CREATE TABLESPACE pgtbs_osmgis OWNER "osmgis" LOCATION '/home/DATA/pgtbs_osmgis';

请把‘password’替换成您设置的密码。

创建数据库和一个对应的管理用户,管理用户建议使用password认证(pg_hba.conf),具体配置可参见之前的文章。

CREATE DATABASE osmgis WITH OWNER = "osmgis" ENCODING = 'UTF8' TABLESPACE=pgtbs_osmgis; GRANT ALL PRIVILEGES ON DATABASE osmgis TO osmgis;

服务启动

pg_ctl restart #初始化启动了一次,所以是restart

这里是个坑,如果不启动会报错

could not load library "/usr/lib64/pgsql/postgis-2.0.so": ×××××××××乱遭: cannot open shared object file: No such file or directory

注意,注意

1.3 添加postgis功能以及hstore

以下方法,因权限问题,需要使用postgres用户来操作

su - postgres

psql -Upostgres -dosmgis

psql -Upostgres -dosmgis

psql -Upostgres -dosmgis

用postgres用户登录psql,然后创建hstore

psql -Upostgres -dosmgis

create extension hstore; #如报错,请检查是否安装了postgresql94-contrib

1.4 Postgresql配置的优化

为了使地图数据导入更加顺滑,我们需要调整一下PG的配置文件

配置文件:/var/lib/pgsql/9.4/data/postgresql.conf

shared_buffers = 128MB

maintenanceworkmem = 256MB

checkpoint_segments = 20

autovacuum = off

修改完配置后别忘了

sudo service postgresql-9.4 reload

OSMGIS地图数据下载

根据需要,可以去 http://planet.openstreetmap.org/ 下载地图数据,建议下载 .pbf 二进制格式的数据,这样下载和数据导入速度都会快一些。目前全球数据大小在25G左右(导入后大概占用空间500G左右)。也可以根据需要下载州、国家、地区的数据 http://download.geofabrik.de/ ,或者下载某个城市甚至可以指定一个区域下载 http://download.bbbike.org/osm/。更多的OSMGIS数据下载可以参见:

我们可以先下载一个比较小的地图用于先期的测试工作,我们先拿宝岛台湾作个试验吧!

wget http://download.bbbike.org/osm/bbbike/Beijing/Beijing.osm.pbf

如果打算导入全球数据的话,根据服务器的配置不同,耗时也是不同的。快则一天,多则可能需要一周。具体可参考官方的评测报告:http://wiki.openstreetmap.org/wiki/Osm2pgsql/benchmarks, 里面例举了不同硬件/软件配置的数据导入耗时。

数据导入

因为本次地图底图要支持CartoCSS,我们选用了osm-bright的方案,当然还有其他一些开源的方案支持CartoCSS+Mapnik的底图瓦片渲染,这个可以根据个人喜好来决定。但无论选择哪种方案,最终是希望能通过一个友好的编辑器(例如TileMill),来方便的设计/修改地图的底图样式。

3.1 下载osm-bright

用皮肤,地图皮肤哦

git clone https://github.com/mapBox/osm-bright.git

3.2 imposm 安装

地图数据文件的导入工具,本次选择了imposm,也可以用osm2pgsql,一个是Python的实现一个是C的实现,据说imposm比osm2pgsql要快一些。

yum install python-psycopg2 python-devel protobuf-compiler gcc gcc-c++ protobuf-devel tokyocabinet-devel geos-devel

yum install python-pip pip install imposm

3.3 数据导入

导入需要指定一个mapping.py的配置文件,此文件在osm-bright的项目目录下

sudo -s cd /home/postgres/

su - postgres

imposm --connection=postgis://osmgis:password@localhost/osmgis -m ./osm-bright/imposm-mapping.py --read --write --optimize --deploy-production-tables taiwan-latest.osm.pbf

这里需要注意一下路径:1、./osm-bright/imposm-mapping.py

2、taiwan-latest.osm.pbf 可以直接写根路径

另外一个需要注意的是,imposm默认链接PG用的是IPv6 ??? 所以可能需要修改pghba.conf,否则以上导入过程可能会报错(FATAL: Ident authentication Failed for user “xxxxxx”),我们需要在pghba.conf中加入以下一条规则:

IPv6 local connections:

host all osmgis ::1/128 md5

安装NodeJS

因为TileMile是NodeJS的项目,所以我们要先安装NodeJS以及NPM包管理工具

yum install nodejs npm

第三步:

osm 搭建离线地图_搭建开源地图服务 - 利用OSMGIS和iD相关推荐

  1. wince搜狗地图_安卓百度地图winCE版 V10.9.2 安卓版下载 - 加速吧 - win10系统之家

    百度地图winCE版是一款非常好用的车载地图导航app.这款百度导航车载wince版基于wince技术开发,为每一位即将出行的用户提供最适合的路线规划,少走烂路.歪路,更快更精准的找到目的地. [功能 ...

  2. 开源地图引擎openlayers_开源地图简单对比

    开源地图引擎 开源协议 地图引擎对比数据获取时间 2020-8-10name-mapleafletopenlayermapbox-glcesium周下载量3740149950735228916903 ...

  3. 中国地图_铜板画地图铜地球仪高档办公室装饰用品定制铜版画地图中国地图世界地图定制惠风堂铜雕艺术...

    惠风堂铜雕艺术 惠风堂911期 春华秋实,惠风堂与你同在!惠风堂感谢过去一年,新老顾客的支持和厚爱!新的一年我们会更加努力的,为您做出令您满意的艺术作品.感恩! 客户定制彩色地图,可以免费写赠言!15 ...

  4. 怎样组建云计算机,如何搭建云计算平台_搭建云计算平台步骤

    云计算平台简单的理解就是仓库了,给你提供存储运转的空间:比如你查询的任何网络内容都是在某一网络的平台上,大家都可以同时不同地点看到一样的东西.本文给大家介绍如何搭建云平台. 搭建云计算平台步骤 规划- ...

  5. mapbox中文地图_使用 Mapbox 地图

    如果您可以访问 Mapbox 地图,则可以将其添加至您的工作簿,或者使用它们在 Tableau Desktop 中创建地图视图.有关特定于国家/地区的可用数据的列表,请参见支持的地图数据. 将使用 M ...

  6. 地图上分成一块一块区域 高德地图_在谷歌地图上绘制行政区域轮廓【结合高德地图的API】...

    实现思路: 1.利用高德地图行政区域API获得坐标列表 2.将坐标列表绘制在谷歌地图上[因为高德地图和国内的谷歌地图都是采用GCJ02坐标系,所有误差很小,可以不进行坐标误差转换] 注意点: 1.用百 ...

  7. 怎么下载没水印的谷歌卫星地图_谷歌卫星地图有水印怎么办

    我们在下载谷歌卫星地图时,发现卫星地图上有水印,那怎么办呢?虽然没有办法去掉卫星地图上的水印,但是可以换一种谷歌卫星地图呀,下面小编就给大家介绍下,如何下载无水印的谷歌卫星地图. 我们先来看下几个卫星 ...

  8. 定位匹配 模板匹配 地图_什么是地图匹配?

    定位匹配 模板匹配 地图 By Marie Douriez, James Murphy, Kerrick Staley 玛丽·杜里兹(Marie Douriez),詹姆斯·墨菲(James Murph ...

  9. php搭建markdown云笔记_搭建个人 Leanote 云笔记本

    Leanote 是目前为止发现的最有 bigger 的云笔记,具备 markdown 输入,代码高亮,多人协作,笔记历史记录,笔记内导航,直接发布为博客等等能力.本实验将带您一步步搭建属于自己的云笔记 ...

  10. windows 本地搭建git仓库_搭建Git服务器

    在远程仓库一节中,我们讲了远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改. GitHub就是一个免费托管开源代码的远程仓库.但是对于某些视源代码如生命的商业公司来说,既不想 ...

最新文章

  1. 构造 HDOJ 5400 Arithmetic Sequence
  2. PowerShell-1.入门及其常用
  3. 输入两个整数序列。其中一个序列表示栈的push顺序, 判断另一个序列有没有可能是对应的pop顺序。
  4. 面试准备系列01----面试中的链表题目汇总
  5. 给新手程序员的一些建议
  6. 不使用JavaScript实现菜单的打开和关闭
  7. CSS display属性的值及作用
  8. uvc能支持多大分辨率_华为手环B5测评:该有的功能一个不缺,甚至还能变身蓝牙耳机...
  9. RadioButtonList Enabled=false 文字背景
  10. springMVC整合swagger(亲自试验完全可用)
  11. MySQL中with rollup的用法
  12. android系统下多媒体播放
  13. Laravel的CURD操作
  14. Java 将Excel转为XML
  15. 北风网android,北风网JAVA/ASP.NET/Android系列公开课视频教程入门项目必学课程
  16. secureCRT 下载使用
  17. 帝国CMS7.5仿可可礼物网漂亮大气淘宝客网站源码 带手机版+火车头采集
  18. pandas Create,Read,Write
  19. 计算机职业规划范文300字,【职业规划300字范文】_职业规划范文300字
  20. Manjaro Linux 魔兽世界 使用黑盒工坊安装插件

热门文章

  1. sql1428N错误
  2. centos7 搭建最新的RAP2接口管理工具并导入原rap旧数据
  3. 程序员编程入门一定知道!程序员需要学什么?
  4. 量子计算机窦文涛,中国式浪漫,美到哭泣!
  5. Inna and Alarm Clock
  6. linux内核irq,linux kernel的中断子系统之(四):High level irq event handler
  7. 我裸辞 转行软件测试 然而没有人要我
  8. Linux root用户及权限管理
  9. 开源分布式配置组件conf使用教程
  10. 印度BIS认证标志详解