【问题标题】:Mapping spatial data in Android在 Android 中映射空间数据
【发布时间】:2012-09-06 05:11:07
【问题描述】:

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

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

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

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

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

任何信息将不胜感激。

【问题讨论】:

  • 你可以在Spatialite Forum上问这个问题,差不多一年前我也遇到过类似的问题,但是在我无法在Android中查询Spatialite db后我放弃了,有人告诉我不是可能
  • 嗨 Habib,您可以将 Spatialite 移植到 android。我查询成功了。
  • 我可以在spatialite 论坛上问这个问题,你是对的,但是这是一个关于GIS 映射的更笼统的问题,而不是专门的Spatialite。
  • 是的,没错。我也等着回答。

标签: java android mapping gis


【解决方案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 在地图上选择几何对象,需要混合选择单击点周围的缓冲区或区域、更改单击对象的颜色以及在可以显示的对象上创建元数据。这可能有点宽泛,但我还没有达到这一点,所以很多都是理论上的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-08
    相关资源
    最近更新 更多