首页 > 编程知识 正文

osm开源地,Osm地

时间:2023-05-04 08:53:37 阅读:277358 作者:4565

配置Apache

安装apache

sudo apt install apache2

创建一个模块来加载文件

sudo nano /etc/apache2/mods-available/mod_tile.load

粘贴下列代码到文件中

LoadModule tile_module /usr/lib/apache2/modules/mod_tile.so

创建一个链接

sudo ln -s /etc/apache2/mods-available/mod_tile.load /etc/apache2/mods-enabled/

编辑下列的初始配置

sudo nano /etc/apache2/sites-enabled/000-default.conf

粘贴以下代码至文件中

LoadTileConfigFile /usr/local/etc/renderd.confModTileRenderdSocketName /var/run/renderd/renderd.sock#Timeout before giving up for a tile to be renderedModTileRequestTimeout 0#Timeout before giving up for a tile to be rendered that is otherwise missingModTileMissingRequestTimeout 30

保存文件并重启Apache

sudo systemctl restart apache2 手动启动renderd

执行下面命令,为启动renderd服务,启动起来之后,该命令不会自动结束,而是处于一直启动的状态,如果想看地图服务器是否搭建成功,请勿手动关闭该命令。

sudo -u 'osm' renderd -f -c /usr/local/etc/renderd.conf

在网页浏览器中输入:your-server-ip/osm_tiles/0/0/0.png,如果出现了一张世界地图,说明搭建的服务器成功能,此时可以关闭该命令。
没有的话也不要紧,接着执行以下命令

后台启动renderd service

通过拷贝mod_tile的init脚本安装renderd init脚本:

sudo cp mod_tile/debian/renderd.init /etc/init.d/renderd

赋予权限

sudo chmod a+x /etc/init.d/renderd

编辑init脚本文件

sudo vim /etc/init.d/renderd

改变下列的变量值

DAEMON=/usr/local/曾经的含羞草/$NAMEDAEMON_ARGS="-c /usr/local/etc/renderd.conf"RUNASUSER=osm

保存文件。
创建下列文件,使得osm可以操作这些文件

sudo mkdir -p /var/lib/mod_tilesudo chown osm:osm /var/lib/mod_tile

然后开始renderd service

sudo systemctl daemon-reloadsudo systemctl start renderdsudo systemctl enable renderd 使用leaflet显示滑动地图

进入apache2目录

cd /var/www/html/

然后从leftletjs.com下载JavaScript和CSS,并将其解压缩到Web根文件夹。

wget http://cdn.leafletjs.com/leaflet/v1.3.3/leaflet.zip

解压

unzip leaflet.zip 没有unzip的话安装以下apt install unzip

编辑apache2的主页,将其替换为一下代码,红色字体需要更换为服务器IP地址

sudo nano /var/www/html/index.html <html><head><title>My first osm</title><link rel="stylesheet" type="text/css" rel="external nofollow" href="leaflet.css"/><script type="text/javascript" src="leaflet.js"></script><style> #map{width:100%;height:100%}</style></head><body> <div id="map"></div> <script> var map = L.map('map').setView([53.555,9.899],5); L.tileLayer('http://your-ip/osm_tiles/{z}/{x}/{y}.png',{maxZoom:18}).addTo(map);</script></body></html> 查看瓦片地图

保存并关闭文件。现在,可以通过在浏览器中输入服务器IP地址来查看滑动地图。

your-ip/index.html or your-ip

如果在第十步中,提到的命令执行失败,此时需要手动开启渲染服务,进行预渲染或者即时渲染。

sudo -u 'osm' renderd -f -c /usr/local/etc/renderd.conf 预渲染地图

要预渲染图块而不是即时渲染,请使用render_list命令。预渲染的图块将缓存在/ var/lib/mod_tile目录中。-z和-Z标志指定缩放级别。缩放级别最高为18级,级别越高所需时间越长,预渲染需要大量的时间。如果第十步中的最后一个命令执行失败,需要手动开启渲染服务,进行预渲染。预渲染可以随时停止,重新渲染时,会从你停止的地方继续开始渲染。

sudo -u 'osm' renderd -f -c /usr/local/etc/renderd.confrender_list -m default -a -z 0 -Z 10

去掉边界线
编辑style.xml文件,找到admin和admin-outline,将边界线颜色做修改和海洋同色,修改红标颜色

<Style name="admin" filter-mode="first"> <Rule> <MaxScaleDenominator>200000000</MaxScaleDenominator> <LineSymbolizer stroke="#d8c3b1" stroke-width="0.5" stroke-dasharray="20, 10, 5, 10" stroke-opacity="0.6" /> </Rule></Style><Style name="admin-outline" filter-mode="first"> <Rule> <MaxScaleDenominator>200000000</MaxScaleDenominator> <LineSymbolizer stroke="#ffffff" stroke-width="2.5" stroke-opacity="0.3" /> </Rule>

修改海洋颜色,修改背景色

<?xml version="1.0" encoding="utf-8"?><!DOCTYPE Map[]><Map srs="+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over" font-directory="./fonts" buffer-size="256" background-color="#b3dcdb" maximum-extent="-20037508.34,-20037508.34,20037508.34,20037508.34">

以上操作 需要删除 /var/lib/mod_tile/default default文件
执行一下命令

sudo systemctl daemon-reloadsudo systemctl restart renderdsudo -u 'osm' renderd -f -c /usr/local/etc/renderd.confrender_list -m default -a -z 0 -Z 12sudo systemctl restart apache2

清空浏览器缓存查看

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。