longgangbai 发表于 2013-1-14 17:59:56

GIS的学习(十七)Osmdroid中地图图层

  在地图中添加小地图和线路图层的使用:
源代码:
package com.geoserver.osmdroid;import org.osmdroid.tileprovider.tilesource.TileSourceFactory;import org.osmdroid.util.GeoPoint;import org.osmdroid.views.MapController;import org.osmdroid.views.MapView;import org.osmdroid.views.overlay.MyLocationOverlay;import org.osmdroid.views.overlay.PathOverlay;import org.osmdroid.views.overlay.ScaleBarOverlay;import org.osmdroid.views.overlay.SimpleLocationOverlay;import org.osmdroid.views.overlay.MinimapOverlay;import android.app.Activity;import android.graphics.Color;import android.os.Bundle;/** ** 在osmdroid中 1.添加线路图层*    2.添加小地图图层 *             3.跟踪当前位置移动 *** @Title: * @Description: 实现TODO * @Copyright:Copyright (c) 2011 * @Company: * @Date:2012-8-24 * @author longgangbai * @version 1.0 */public class GeoServerosmdroidActivity extends Activity {private MapView mMapView;private MapController mMapController;int mIncr = 10000;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);mMapView = (MapView) findViewById(R.id.mapview);mMapView.setTileSource(TileSourceFactory.MAPNIK);mMapView.setBuiltInZoomControls(true);mMapView.setMultiTouchControls(true);mMapController = mMapView.getController();mMapController.setZoom(13);//定位当前位置MyLocationOverlay mylocationLayer=new MyLocationOverlay(GeoServerosmdroidActivity.this,mMapView);mMapView.getOverlays().add(mylocationLayer);mylocationLayer.enableCompass();mylocationLayer.enableFollowLocation();mylocationLayer.enableMyLocation();//缩放图层ScaleBarOverlay scalebar=new ScaleBarOverlay(GeoServerosmdroidActivity.this);mMapView.getOverlays().add(scalebar);//SimpleLocationOverlay simpleLocation=new SimpleLocationOverlay(GeoServerosmdroidActivity.this);mMapView.getOverlays().add(simpleLocation);//小地图MinimapOverlay minmap=new MinimapOverlay(GeoServerosmdroidActivity.this,mMapView.getHandler());mMapView.getOverlays().add(minmap);//线路每段的坐标GeoPoint gPt0 = new GeoPoint(51500000, -150000); GeoPoint gPt1 = new GeoPoint(gPt0.getLatitudeE6() + mIncr,gPt0.getLongitudeE6());GeoPoint gPt2 = new GeoPoint(gPt0.getLatitudeE6() + mIncr,gPt0.getLongitudeE6() + mIncr);GeoPoint gPt3 = new GeoPoint(gPt0.getLatitudeE6(),gPt0.getLongitudeE6() + mIncr);mMapController.setCenter(gPt0);//线路PathOverlay myPath = new PathOverlay(Color.RED, this);myPath.addPoint(gPt0);myPath.addPoint(gPt1);myPath.addPoint(gPt2);myPath.addPoint(gPt3);myPath.addPoint(gPt0);mMapView.getOverlays().add(myPath);}} 
 
主要配置:
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.easyway.osmdroid"    android:versionCode="1"    android:versionName="1.0" >    <uses-sdk android:minSdkVersion="8" />    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>   <uses-permission android:name="android.permission.INTERNET"/>   <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />   <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />   <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>      <application   android:icon="@drawable/ic_launcher"             android:label="@string/app_name" >             <activity         android:name="GeoServerosmdroidActivity"                     android:label="@string/app_name" >                     <intent-filter>                           <action android:name="android.intent.action.MAIN" />                              <category android:name="android.intent.category.LAUNCHER" />         </intent-filter>   </activity> </application> </manifest> 
 
布局文件:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:background="#FFFFFF"    android:id="@+id/geoserver_layout"    android:layout_height="fill_parent" >    <org.osmdroid.views.MapView      android:id="@+id/mapview"      android:layout_width="fill_parent"      android:layout_height="fill_parent"      android:clickable="true"      android:enabled="true"      /></RelativeLayout> 
页: [1]
查看完整版本: GIS的学习(十七)Osmdroid中地图图层