飞腾派
直播中

我也不知道啊

1年用户 11经验值
擅长:嵌入式技术
私信 关注

【飞腾派4G版免费试用】在飞腾派上部署GIS平台

Screenshot 2023-12-10 10-33-44.png
OpenKylin的Logo是银河麒麟


萤火工场的飞腾派表面上是一个开发板,但其硬件类型和操作系统都和信创机型比较接近,因此直接拿来模拟信创环境进行开发调试也没太大问题。这里主要分享一下飞腾派上GIS开发的一些经验。用不到的可以就此跳过,节约一些时间。

要在飞腾派上搞GIS,需要搞定以下软件:

  • 基础GIS类库
  • 桌面GIS
  • 空间数据库
  • GIS服务器
  • 前端类库

这里不准备穷举(实际上也做不到),只选择其中代表性的,介绍一下如何在飞腾派上安装部署一个从底层类库到桌面GIS的相对完整的基础环境。

1. 基础GIS类库

在GIS行业的软件中,有一些重量级的基础类库(例如GDAL、JTS/JSTS/GEOS)几乎无处不在。所幸这些类库实在是太重要了,只要不指定版本,在比较常见的Linux发行版一般可以通过包管理程序直接安装,不需要自己从源代码开始编译。

由于随便装几个GIS软件这些类库就顺便装好了(有的是打包但不安装到系统中),所以这里不多介绍,只提一下gdal的安装命令:

sudo apt install gdal-bin

装完运行gdalinfo --version应该可以砍到版本号。一般是不会出错的。一旦需要编译,那就要做好折腾几天的心理准备,因为GDAL依赖的类库不仅多,而且有的需要一点跨国技巧

image.png

一般用户直接用gdal的机会不多,不过没用过的可能性不大,不信可以仔细看下自己手头软件的license或者动态链接库里有没有GDAL。

2. 桌面GIS

开源桌面GIS里最完善的是QGIS,虽然不能说达到了Windows下一流商业桌面GIS软件的水准,但也相差不太多,应对一般性的地理数据查看、编辑、分析加工任务并无问题。此外,QGIS还有一个Provider机制,能够集成其他GIS软件的算法,目前常见版本集成了GDAL、GRASS和SAGA。用于遥感数据处理的OTB和激光点云处理的LasTool也可以集成进去。

作为GIS行业最重要的开源软件之一,QGIS在各大Linux发行版中也比较受重视,稳定版本上通常能够直接用包管理软件安装。不过也有不少得编译安装,这种情况在非X86硬件上尤为常见。

飞腾派的OpenKylin 1.0.1上如果直接装就有QT版本冲突,因此也得走编译路线。

Screenshot 2023-12-07 13-31-37.png

所幸编译QGIS 3.10的源代码并未遇到太多障碍,多线程编译出了一次错后改用单线程编译,大概七八个小时候编译完成,运行并无问题。make install之后运行时有一个缺少动态链接库的错误,想办法apt安装一下就是了。然后就可以正常使用了。
image.png

Screenshot 2023-12-08 10-03-14.png

检查一下插件能装,python能用,基本就没有太大问题了。
Screenshot 2023-12-08 10-04-43.png

Screenshot 2023-12-08 10-05-13.png

右侧可以看到QGIS的工具箱,出了自家工具,还有GDAL和GRASS的。

3. 空间数据库

说起开源的空间数据库来,首推PostgreSQL+PostGIS。剩下的要么贵,要么慢,要么功能少,要么又贵又慢功能又少。安装起来很容易,apt就可以搞定 postgresql、postgis、postgresql-pgrouting三件套。

Screenshot 2023-12-10 10-45-59.png

安装完毕后启动postgresql:

systemctl start postgresql

切换为postgres账户修改默认密码:

sudo su postgres
psql

然后在psql里改密码、测试PostGIS

alter user postgres with password 'postgres';
--test extensions
create extension postgis;
create extension pgrouting;
--test postgis
select ST_POINT(123, 45);

Screenshot 2023-12-10 11-07-11.png

实际使用时数据库配置还是比较复杂的,这里只验证可用性,具体使用方法不做太多介绍。

4. GIS Server

这里先安装不需要魔法的GeoServer,首先要安装JRE:

apt install openjdk-11-jre

这里没有使用古旧的Java8,但也没有使用较新的Java 19,以免出现兼容性问题。安装完检查一下:

image.png

接下是GeoServer。GeoServer是基于Java的,自带jetty,在ARM64下也可以直接运行,前提是GDAL已经安装好。下载地址见https://geoserver.org/release/stable/,可以直接使用
image.png

apt install axel unzip
axel https://sourceforge.net/projects/geoserver/files/GeoServer/2.24.1/geoserver-2.24.1-bin.zip
mkdir geoserver
mv geoserver-2.24.1-bin.zip geoserver/
unzip geoserver-2.24.1-bin.zip
cd bin
./startup.sh

axel是一个多线程下载工具,支持断点续传。sourceforge比github容易访问一些,下载不会太花时间。进去后运行startup.sh即可启动。第一次启动比较慢,请耐心等待。

image.png

有报错,地图也无法访问,先退出。检查日志应该是没有设置GEOSERVER_HOME导致data_dir访问错误,
export GEOSERVER_HOME=/home/openkylin/geoserver之后再来就可以了。
image.png

启动花了231秒,是x86机器上的好几倍,不过tf卡速度感人也是很重要的原因。

image.png

现在就正常了,随便打开一个栅格图层和一个矢量图层看看:
image.png

image.png

前端类库使用的是OpenLayers,顺带测试了,功能正常。

5. 前端地图类库

2D地图类库OpenLayers刚才已经测试了。实际上前端js类库也不大可能出现问题,因为解析和渲染是客户端(浏览器)的事情。

接下来还有一个3D地图类库要测试下,尤其是在飞腾派的浏览器里测试下,看是否能正常启用WebGL。这里先不部署,直接在浏览器里边访问在线版的Demo。切换到采集卡界面,发现系统没有浏览器,先装一个
image.png

说实话界面的响应速度让我对GPU驱动有没有搞定很没有信心,要知道集显打开稍复杂的Cesium页面都会掉帧,飞腾派上的嵌入式的GPU还是很让人担心的。不过这个属于通过努力能解决的问题,现在也不用太纠结。

chromium安装失败,firefox也报错。不过firefox可以打开。基本确认没有3D加速,不过页面还是可以打开的,花了大概5分钟左右把球转到了中国这边。

Screenshot 2023-12-12 23-56-09.png

到这里GIS平台的安装部署就先告一段落了。目前可以确认飞腾派跑后台服务及类库是可以的,桌面的QGIS(2D为主)受一些影响但可能还是勉强可用,3D的Web应用等GPU加速正常后才堪用。

6. 题外话:使用飞腾派+麒麟系统过程中遇到的一些问题

首先是无线网卡不大好用,至少和我路由器(H3C nx30pro)八字不合,连接很弱。无可奈何用了个usb网卡。
Screenshot 2023-12-10 10-53-46.png

还有就是系统本身有点慢,需要放平心态,耐心等待。例如一个命令行窗口出来就要七八秒的样子(现在基本确认GPU加速没用起来)。按道理飞腾派大核是A73以上的性能,不该如此。开机有时候进默认桌面也有点慢,有一次以为是upgrade把桌面挂了,手动运行startx进了KDE还是啥,截图是注销之后的界面。
Screenshot 2023-12-08 10-06-00.png

后边决定开机后多等一会,果然正常进去了。

再有一个是ntp,不自动校准时间https不好用,连apt都会受影响。发现apt update出错了最好先检查下时间,不对头就改下设置再试。最近一次开机联网后自动更新时间了,说明安装ntp是有效的。

其他暂时没发现什么问题。对于一个刚出来的开发板,还有一个刚到1.0.1的系统,不该要求过多,刚开始有点不完善很正常。目前至少是可用、没有无解的问题,对于我来说是符合预期的。等麒麟系统迭代几个小版本之后,拿来跑后端服务或者数据处理、运行前端应用或者使用桌面GIS进行编辑应该都是可以的。

更多回帖

发帖
×
20
完善资料,
赚取积分