我有一个空间表,我想在其中将其对象映射到Android中的画布上。这是在SpatiaLite数据库中。
我可以以SVG格式获取对象数据并从中创建地图,但效率不高。原始对象数据以blob格式保存。
我的问题是,GIS系统如何映射他们的数据。我想映射对象并能够触摸它们以提取它们的属性信息。
这是一个非常简单的问题,答案很大。但我只是在寻找一个可以开始的地方。
我不打算建立一个GIS系统,只是创建一些类似的功能。
非常感谢任何信息。
答案 0 :(得分:1)
我发现除了svg之外还有几个选项:
查询数据并将其解析为JTS几何对象,然后可以通过JTS将对象操作为坐标数组(如果需要)。 JTS-1.8.jar是最新的当前库。
使用它来解析:Geometry geometry = new WKBReader()。read(stmt.column_bytes(2));
OpenGL 1或2似乎不是使用Canvas,而是可以灵活地生成高度可配置的地图。要使用这个,所有几何必须转换为float数组然后浮动缓冲区,OpenGL上有很多教程 Android OpenGL 和 Android OpenGL getting started是两个非常好的。
Habib:这个例子是开始使用spatialite和android的好地方:spatialite-android
为了使用OpenGL在地图上选择几何对象,需要在点击点周围选择缓冲区或区域,更改单击对象的颜色以及在可显示的对象上创建元数据。这可能有点宽泛,但我还没有达到这一点,但很多是理论上的。