Archive for the Category: OpenSource

GeoMesa安装

GeoMesa安装 GeoMesa的安装主要包括5个组件的安装,分别是: GeoMesa Accumulo安装 GeoMesa Kafka安装 GeoMesa HBase安装 GeoMesa Bigtable安装 GeoMesa Cassandra安装 1 GeoMesa Accumulo安装 Apache Accumulo 是一个可靠的、可伸缩的、高性能的排序分布式的 Key-Value 存储解决方案,基于单元访问控制以及可定制的服务器端处理。使用 Google BigTable 设计思路,基于 Apache Hadoop、Zookeeper 和 Thrift 构建。 GeoMesa 提供了对Accumulo的支持,可以将时空数据存储到Accumulo中。 1.1 安装要求 操作系统为Unbunu 14.04 server,需要有sudo权限,并且交换分区最少为2G。 目前GeoMesa 支持的Accumulo版本为1.7。因为Accumulo依赖于Hadoop和Zookeeper,因此在安装Accumulo之前,要首先安装Hadoop和Zookepper。为了方便演示和学习,本教程中Hadoop和Zookeeper以及Accumulo安装的都是单机版本,并会安装到同一台机器上。关于集群的安装和配置,请查阅相关文档。 GeoMesa Accumulo还提供了通过GeoServer访问的能力,因此需要使用该功能的话,还需要安装GeoServer。目前GeoMesa Accumulo支持的GeoServer版本为2.9.1。 1.2 安装Hadoop 安装java 首先,需要安装Java1.8,打开Ubuntu命令行,添加pa:webupd8team/java并更新apt-get,如下面代码: root@HDMachine:~$ sudo add-apt-repository ppa:webupd8team/java root@HDMachine:~$ sudo apt-get update 然后安装Java1.8 root@HDMachine:~$ sudo […]

Also posted in Uncategorized Leave a comment

GeoMesa架构

GeoMesa架构 GeoMesa支持多种可扩展的、基于云端的数据存储架构,包括Apache Accumulo, Apache HBased,Google Cloud Bigtable以及用于流计算的Apache Kafka 。同时GeoMesa还可以和Apache Storm一起处理流数据,并使用Spark进行空间分析。 GeoMesa架构如图1: GeoMesa和GeoServer GeoMesa以GeoServer插件的形式为GeoServer提供了读取GeoMesa表的功能。在GeoServer中,GeoMesa表作为一种数据源存在,通过GeoServer,用户可以通过WMS/WFS的形式访问GeoMesa的数据。 GeoMesa表作为数据源,如图2: 与GeoMesa集成 为了方便用户使用GeoMesa中存储的数据,GeoMesa通过实现GeoTools接口,提供了使用OGC标准服务接口访问数据的能力,实现的OGC标准有: Web Feature Service (WFS) Web Mapping Service (WMS) Web Processing Service (WPS) Web Coverage Service (WCS) GeoMesa提供了多种导入数据的方式,包括GeoMesa命令行工具,Hadoop的map-reduce作业以及Apache Storm的实时数据流,如图3: GeoMesa的查询流程图如图4,通过GeoMesa API或GeoTools API,查询操作从Accumulo中数据读出: 键值对存储和Z曲线 GeoMesa的数据存储使用 key-value数据库。key-value数据库是一种NoSQL数据库,其数据按照键值对的形式进行组织、索引和存储。 Accumulo,HBase和Google Cloud Bigtable对这些键进行排序,并可将它们存储在任意数量的节点(服务器)上。 当使用key-value数据库时,Key的良好设计可以使应用程序更高效的运行。与关系数据库不同的是,key-value数据库中会频繁的使用key进行查询。例如在订单数据库中,会以订单号作为key进行存储,当用户查询订单的时候,即可用通过订单号直接查询到订单数据并返回该条数据。Accumulo,HBase和Cloud Bigtable都是使用类似的机制进行工作,GeoMesa同样也是使用该机制来进行数据组织。GeoMesa根据时空数据的特点,实现了生成包含时空信息的Key的算法,算法的基本思想如图5: 图中的红线被称为空间填充曲线,又称为Z曲线。该线顺序访问每个单元格一次,并且能够保证访问次序的唯一性。 Z曲线也能用于高分辨率地图,如图6: Z曲线上的每个点都可以赋予一个顺序值,通过这个顺序值,GeoMesa将经纬度表示为一个整数,这样就将二维数据降为一维数据,可以作为key-value数据库中的key使用。因为Z曲线支持多维数据,所以GeoMesa也支持将多维数据降为一维数据,作为key使用。 GeoMesa 索引 GeoMesa 索引的基本原理计算将三维(经度、纬度、时间)的数据按照Z曲线进行降维,得到一维数据作为Key使用,方便在key-value数据库中进行查询。 实际的Key结构比简单的键值对更复杂。在Accumulo中GeoMesa索引的结构如图7:

Also posted in gis Leave a comment

GeoMesa介绍

GeoMesa 是由locationtech开源的一套地理大数据处理工具套件。其可在分布式计算系统上进行大规模的地理空间查询和分析。使用GeoMesa开源帮助用户管理、使用来自于物联网、社交媒体、手机应用的海量的时空(spatio-temporal)数据。 GeoMesa支持将海量的时空数据存储到Accumulo,HBase,Google Bigtable和Cassandra数据库中,并提供高效的索引来读取、查询这些数据。并支持通过指定空间条件(距离和范围)来快速查询。另外GeoMesa还基于Apache Kafka提供了时空数据的近实时流处理功能。 通过和GIS Server(GeoServer)的整合, GeoMesa 提供了通过标准OGC接口(WMS/WFS)访问数据的能力,通过这些接口,用户可以方便对GeoMesa处理的数据进行展示和分析,比如查询、直方图、时间序列分析等。 为什么选择GeoMesa 能够存储和处理海量时空数据 支持实时性强、需要快速读写的数据 支持spark分析 支持水平扩展 通过GeoServer提供地图服务,并支持Common Query Language (CQL) 项目地址 http://www.geomesa.org/‘ 授权 GeoMesa使用Apache License Version 2.0协议。 http://apache.org/licenses/LICENSE-2.0.html

Also posted in gis Leave a comment

基于Mapbox+osrm的iOS离线导航解决方案

osrm(project-osrm.org)一个c++的route类库,他提供了osm-route方法使其作为服务器运行,同时也提供了libosrm库,供用户以API的方式使用。 由于osrm是一个纯c++的库,因此就具备了移植到iOS的可能。 同时mapbox提供的directions功能也是基于osrm的,因此可以将离线的osrm route结果直接给osrm使用,然后再给mapbox的navigator使用。 上个demo

Also posted in iOS Leave a comment

ArcGIS API for iOS 加载Google Maps开源代码

在之前的博客《成功使用ArcGIS API for iOS加载Google地图》中曾经展示了使用ArcGIS API for iOS加载google map的截图,很多朋友都比较感兴趣,下面就把代码共享给大家: https://github.com/barrycug/iOSGoogleMapLayer iOSGoogleMapLayer项目通过扩展ArcGIS API for iOS中的tiledMapLayer来实现对google地图的访问。 @interface AGSGoogleMapLayer : AGSTiledLayer { AGSTileInfo* _tileInfo; AGSEnvelope* _fullEnvelope; AGSUnits _units; } -(id)initWithGoogleMapSchema; @end 通过initWithGoogleMapSchema方法来读取google map的切图参数   #import "AGSGoogleMapLayer.h" #import "GoogleMapSchema.h" #import "GoogleMapTileOperation.h" int MakeAGSUnits(NSString* wkt){ NSString* value ; BOOL _continue = YES; NSScanner* scanner = [NSScanner scannerWithString:wkt]; //Scan for the UNIT […]

Also posted in ArcGIS, ArcGIS API for iOS, iOS, iPad, iPhone4 2 Comments

AGSTiledLayerExtendLib 开源项目发布

项目地址:https://github.com/barrycug/AGSTiledLayerExtendLib 项目简介:AGSTiledLayerExtendLib 是一个ArcGIS Flex API 扩展项目,该项目提供对google map,bing maps,openstreetmap等主流地图的访问,还支持中国本地一些地图的访问,例如天地图,MapABC,MapABC交通图以及WMSC地图的访问。 项目首页  

Also posted in ArcGIS, ArcGIS API for flex Leave a comment