- <span style="font-size:18px;">public class SpatialiteTestActivity extends Activity {
- private MapView mapView;
- private GraphicsLayer graphicsLayer;
- private SimpleMarkerSymbol markerSymbol;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- mapView = (MapView) this.findViewById(R.id.map);
- this.mapView.addLayer(new ArcGISTiledMapServiceLayer("http://www.arcgisonline.cn/ArcGIS/rest/services/ChinaOnlineCommunity/MapServer"));
- graphicsLayer = new GraphicsLayer();
- this.mapView.addLayer(graphicsLayer);
- // copy database to application folder
- try {
- AssetHelper.CopyAsset(this, ActivityHelper.getPath(this, false), getString(R.string.test_db));
- } catch (IOException e) {
- ActivityHelper.showAlert(this, getString(R.string.error_copy_failed));
- }
- // symbol
- markerSymbol = new SimpleMarkerSymbol(Color.RED, 16, SimpleMarkerSymbol.STYLE.CIRCLE);
- markerSymbol.setOutline(new SimpleLineSymbol(Color.BLACK, 1));
- //
- loadDataFromSpatialite();
- }
- private void loadDataFromSpatialite() {
- try {
- String dbFile = ActivityHelper.getDataBase(this,
- getString(R.string.test_db));
- Class.forName("jsqlite.JDBCDriver").newInstance();
- jsqlite.Database db = new jsqlite.Database();
- db.open(dbFile, jsqlite.Constants.SQLITE_OPEN_READONLY);
- Callback cb = new Callback() {
- @Override
- public void columns(String[] coldata) {
- }
- @Override
- public void types(String[] types) {
- }
- @Override
- public boolean newrow(String[] rowdata) {
- // 爸从spatialite中得到的空间数据在GrpahicsLayer中显示出来
- double x = Double.valueOf(rowdata[2]);
- double y = Double.valueOf(rowdata[3]);
- Point pnt = new Point(x, y);
- Graphic graphic = new Graphic(pnt, markerSymbol);
- graphicsLayer.addGraphic(graphic);
- return false;
- }
- };
- // sql语句,取出x、y坐标
- String query = "SELECT name, peoples, x(Geometry), y(Geometry) from Towns where peoples > 8000";
- db.exec(query, cb);
- } catch (IllegalAccessException e) {
- e.printStackTrace();
- } catch (InstantiationException e) {
- e.printStackTrace();
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- @Override
- protected void onDestroy() {
- super.onDestroy();
- }
- @Override
- protected void onPause() {
- super.onPause();
- mapView.pause();
- }
- @Override
- protected void onResume() {
- super.onResume();
- mapView.unpause();
- }
- }</span>
Android 从Spatialite中加载数据
最新推荐文章于 2022-09-20 00:27:14 发布