在Android中映射空间数据

6
我有一个空间表,我想在Android上的画布上将其对象映射出来。这是在SpatiaLite数据库中的。
我可以以SVG格式获取对象数据并创建地图,但效率不高。原始对象数据保存为blob格式。
我的问题是,GIS系统如何映射它们的数据。我想映射对象并能够触摸它们以拉起它们的属性信息。
这是一个非常简单的问题,答案却很大。但我只是在寻找一个开始的地方。
我不打算构建GIS系统,只是创建一些类似的功能。
任何信息都将不胜感激。

你可以在Spatialite论坛上提出这个问题。我大约一年前也遇到了类似的问题,但是在无法在Android中查询Spatialite数据库后,我放弃了。有人告诉我这是不可能的。 - Habib
嗨,哈比博,你可以将Spatialite移植到Android上。我已经成功地查询了。 - Hank
我可以在Spatialite论坛上提出这个问题,你说得对,但这是一个更普遍的关于GIS地图制作的问题,不仅仅是关于Spatialite。 - Hank
是的,那是正确的。我也会等待答案。 - Habib
1个回答

1

我发现除了svg之外还有几个选项:

将数据查询出来并解析成JTS几何对象,通过JTS可以将对象转换为坐标数组(如果需要的话)。JTS-1.8.jar是最新的当前库。

使用以下代码进行解析:Geometry geometry = new WKBReader().read(stmt.column_bytes(2));

不要使用Canvas,OpenGL 1或2似乎是灵活生成高度可配置地图的方法。要使用此功能,所有几何体都必须转换为浮点数组,然后转换为浮点缓冲区,有很多关于OpenGL的教程Android OpenGLAndroid OpenGL getting started是两个非常好的教程。

Habib:关于spatialite和android的一个很好的起点是这个例子:spatialite-android

为了使用OpenGL在地图上选择几何对象,需要混合选择缓冲区或围绕点击点的区域,更改所点击对象的颜色并创建元数据以显示对象。这可能有些宽泛,但我还没有达到这个点,所以很多都是理论上的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接