java - 在 Android 中映射空间数据

标签 java android mapping gis

我有一个空间表,我想从中将其对象映射到 Android 的 Canvas 上。这是在 SpatiaLite 数据库中。

我可以获取 SVG 格式的对象数据并从中创建 map ,但效率不高。原始对象数据以 blob 格式保存。

我的问题是,GIS 系统如何映射其数据。我想映射对象并能够触摸它们以提取它们的属性信息。

这是一个非常简单的问题,但答案却很丰富。但我只是在寻找一个开始的地方。

我不打算构建 GIS 系统,只是创建一些类似的功能。

如有任何信息,我们将不胜感激。

最佳答案

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

查询出数据并将其解析为JTS 几何对象,然后如果需要,可以通过JTS 将对象操作为坐标数组。 JTS-1.8.jar 是当前最新的库。

用它来解析:Geometry geometry = new WKBReader().read(stmt.column_bytes(2));

与使用 Canvas 不同,OpenGL 1 或 2 似乎更适合灵活地生成高度可配置的 map 。要使用这个所有的几何图形必须先转换为 float 组然后是浮点缓冲区,有很多关于 OpenGL 的教程 Android OpenGLAndroid OpenGL getting started是两个非常好的。

Habib:这个例子是开始 spatialite 和 android 的好地方:spatialite-android

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

关于java - 在 Android 中映射空间数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12293309/

相关文章:

c# - Nhibernate一对多添加元素

java - 事务管理似乎不适用于 Spring 测试

java - 使用 AngularJS 传递参数时 Resteasy @FormParam null

android - MPAndroidChart 已弃用的 setDrawCubic() 的替代品是什么?

java - 从另一台机器通过java连接MySQL数据库

android - 非法参数异常 : button doesn't exist 0 in android studio 2. 1 在 ubuntu 14.04

symfony - 从现有表生成单个 Symfony2 实体

.net - EF4 代码优先 : defining object relationships, 外键

java - 我是否需要同步访问仅由一个线程修改的列表?

java - 用于R和Java的连接