Google Earth Enterprise是谷歌地球的企业版,谷歌将其于2017年3月开源在Github。本文介绍GEE的安装步骤,译自github上的英文文档。
原文地址:Build Instructions
GEE包含三个核心组件:
- Fusion:导入图像、图像和地形资源数据并进行“融合”,生成可操作的3D地球模型或者2D地图
- Server:Apache 或是基于 Tornado 的服务器,以存储 Fusion 创建的私有地球模型。
- Client:用于查看 3D 地球模型和 2D 地图的 Google 地球企业客户端(EC)和 Google Maps Javascript API V3。
这次开源的产品包括了GEE Fusion、GEE Server 和 GEE Portable Server,GEE Client 和 GE API并不开源;
但是,由于GEE Fusion和GEE Server开源了,所以图像和地形四叉树的实现开始支持第三方开发人员建立视图,用于访问GEE Server数据库。
目录
- 在Ubuntu 14.04 LTS 和 RHEL 7上搭建Fusion和Server组件
- Ubuntu 14.04.5 LTS搭建步骤
- RHEL 7搭建步骤
- 如果你有5.1.3安装程序
- 在Linux和Windows上构建 Portable Server
- Portable on Linux
- Portable on Windows
在Ubuntu 14.04 LTS 和 RHEL 7上搭建Fusion和Server组件
在Ubuntu或RHEL/CentOS都要运行这些命令
- 根据下面的指令为您的Linux操作系统安装git
- 根据https://git-lfs.github.com指定的指令安装git-lfs
- 用git克隆gee-os的repo
方法一:一步克隆并下载LFS文件(可能较慢并易错)
git clone git@github.com:<username>/earthenterprise.git
方法二:两步克隆并下载LFS文件
GIT_LFS_SKIP_SMUDGE=1 git clone git@github.com:<username>/earthenterprise.git cd earthenterprise git lfs pull
- 在下面的搭建说明中,搭建GEE/Fusion的scons指令中有下列选项:
-
internal=1
- 用无优化的代码搭建,最适合开发和调试 -
optimize=1
- 用优化过的代码搭建,但会包含一些调试信息 -
release=1
- 有优化过的代码搭建一个没有调试信息的版本 -
-j#
- 指定并发数,用一个整数代替#,它应该大致匹配处理器的核数 -
--debug=stacktrace
- 如果在scons脚本中有一个错误,这个选项将给你关于如何调试它的更详细的信息 -
--config=force
- 如果你不小心删除了.sconf_temp
目录或者改动了你的系统库,用这个选项让配置重跑一遍,否则scons可能会报缺库
- 根据你要使用的平台,进行下面的步骤
- 运行单元测试
cd NATIVE-OPT-x86_64/bin/tests ./RunAllTests.pl
或者运行一个个人测试
Ubuntu 14.04.5 LTS搭建步骤:
- 安装git:
sudo apt-get install git (installs version 1.9.1)
执行下列步骤以得到git的最新版本(1.9.1版本目的在于和repository进行交互,但是如果你想要下载最新版本的git,操作步骤陈述如下):
sudo -i add-apt-repository ppa:git-core/ppa apt-get update apt-get install git
这样安装的版本是2.11 注:在进行之前确认退出“sudo” - 安装下列包(如果没有安装的话)
sudo apt-get install gcc g++ scons automake autoconf libperl4-corelibs-perl libtool xorg-dev doxygen python-dev alien swig libgtest-dev libstdc++6 libxml2-dev gettext libxinerama-dev libxft-dev libxrandr-dev libxcursor-dev libgdbm-dev libc6 libc6-dev libmng-dev zlib1g-dev libcap-dev libpng12-0 libpng12-dev freeglut3-dev flex libx11-dev bison++ bisonc++ libjpeg-dev libjpeg8-dev python2.7 python2.7-dev libogdi3.2-dev libgif-dev libxerces-c-dev libgeos-dev libgeos++-dev libfreetype6 libfreetype6-dev python-imaging libproj-dev python-setuptools libgif-dev libxerces-c-dev libcap-dev libpq-dev openssl
3.构建第三方库:比如:GEEDIR=/googleclient/geo/earth_enterprise
cd $GEEDIR/src scons -j8 optimize=1 third_party
- 从
third_party/python/SConscript
构建Fusion/Earth Server
:用sandbox
路径替换-idirafter
`scons -j8 optimize=1
RHEL 7搭建步骤
- 安装git
推荐:安装最新版本的git:
i. enable IUS repo More Info.
cd /tmp wget https://rhel7.iuscommunity.org/ius-release.rpm sudo yum install ius-release.rpm
ii. 安装git 2.x
sudo yum install git2u-all
或者安装系统默认的版本(1.8)
sudo yum install git
- 安装EPEL repo
sudo yum install epel-release
注,如果这个命令不能工作,尝试列出的替换方法here - enable optional repo
sudo subscription-manager repos --enable=rhel-7-server-optional-rpms sudo subscription-manager repos --enable=rhel-7-server-optional-source-rpms
- 安装开发工具
sudo yum --setopt=group_package_types=mandatory,default,optional groupinstall "Development Tools"
- 安装扩展包
sudo yum install scons perl-Perl4-CoreLibs xorg-x11-server-devel python-devel perl-Alien-Packages gtest-devel openssl-devel libxml2-devel libXinerama-devel libXft-devel libXrandr-devel libXcursor-devel gdbm-devel libmng-devel libcap-devel libpng12-devel libXmu-devel freeglut-devel zlib-devel libX11-devel bison-devel openjpeg-devel openjpeg2-devel geos-devel proj-devel ogdi-devel giflib-devel xerces-c xerces-c-devel
- 构建第三方库
GEEDIR=/googleclient/geo/earth_enterprise
cd $GEEDIR/src scons -j8 optimize=1 third_party
- 构建Fusion/Earth Server
scons -j8 optimize=1
如果你有5.1.3安装程序
如果你有GEE和Fusion 5.1.3安装程序,那么有一个构建部署脚本可以简化构架和安装的过程。将来这个脚本将会更新,以脱离之前的安装程序单独运行。
- 安装GEE和Fusion 5.1.3
- 如上克隆repo
- 构建并部署
cd $GEEDIR/src ./tmp/build_and_deploy_gee.sh --build
在Linux和Windows上构建 Portable Server
一个用来在Linux和Windows上构建 Portable Server的Python脚本正在被评估。经过批注,合并,Portable Server将按下列段落描述被构建。
软件构建需要:
- Python
- Python pexpect installed
- Swig with support for Python
- g++
Portable 运行需要:
- Python
- Python tornado installed
Portable on Linux
确认你安装了Python, the pexpect Pip package, as well as tornado, g++, and Swig with Python support
例如:
sudo apt-get install g++ python python-pexpect python-tornado swig
运行
earthenterprise/earth_enterprise/src/portableserver/build.py
构建脚本会产生一个名字看起来像thenterprise/earth_enterprise/src/portableserver/build/portableserver-linux-5.1.3-20170412.tar.gz
的压缩文档(archive)。文件名的构建日期部分将会根据你构建的日期改变。
为了从这个archive包运行Portable Server:
1. 提取所有的文档内容
2. cd portableserver-linux-5.1.3-20170412/server/ #(substituting your extracted directory)
3. python portable_server.py
在启动服务前,你可以根据你的配置需要编辑portableserver-linux-5.1.3-20170412/server/portable.cfg
和portableserver-linux-5.1.3-20170412/server/remote.cfg
清除构建文件,运行
earthenterprise/earth_enterprise/src/portableserver/build.py --clean
Portable on Windows
安装g++编译器
你可以用g++编译器安装 MinGW,或者run the build from a Git-BASH or Git-Cmd shell fromGit-Scm, which should come with g++。
确认g++在你的PATH
中
安装Swig with Python Support
- 下载一个Windows版的Swig Zip
- 解压Zip到想要的安装目录
- 添加你期望的安装目录到你的
PATH
安装Python
下载并安装 Python 2.7或更高版本
如果你安装了Python,确认你装了pexpect
和tornado
cd \Python27\Scripts pip install pexpect tornado
把你的Python安装路径添加到PATH
构建Portable Server
用你PATH
里的g++,swig,python打开一个command prompt。
运行
python earthenterprise\earth_enterprise\src\portableserver\build.py
构建脚本会产生一个名字看起来像thenterprise/earth_enterprise/src/portableserver/build/portableserver-linux-5.1.3-20170412.tar.gz的压缩文档(archive)。文件名的构建日期部分将会根据你构建的日期改变。
为了从这个archive包运行Portable Server:
1. 提取所有的文档内容
2. cd portableserver-linux-5.1.3-20170412/server/ #(substituting your extracted directory)
3. python portable_server.py
在启动服务前,你可以根据你的配置需要编辑portableserver-linux-5.1.3-20170412/server/portable.cfg和portableserver-linux-5.1.3-20170412/server/remote.cfg
清除构建文件,运行
earthenterprise/earth_enterprise/src/portableserver/build.py --clean
实践中遇到的问题
在实际操作过程中,我卡在git lfs pull这一步,存在lfs上的东西无法批量下载。
克隆的库只有300多M,完整的应该有七八百M。
手动下载和替换可以解决部分报错,但是数量太大无法全部实现。
这里有一个与我遇到相同报错的Issues:Fatal error: libjs/jsautocfg.h: No such file or directory
开发者给出的答复是“你没有装git lfs,或没有执行git lfs pull”。
提问者对此答复的回答是“Thanks. It works now.”
可能是因为他们都是外国用户吧(然而我尝试翻墙仍然下不动)。