`

GPS定位

阅读更多


public class GPSView extends Activity {

	final static double SEARCH_RADIUS = 5;

	MapView map = null;

	@SuppressWarnings("serial")
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		map = (MapView) findViewById(R.id.map);

		String mapurl = "http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer";
		map.addLayer(new ArcGISTiledMapServiceLayer(mapurl));

		// 地图状态的改变
		map.setOnStatusChangedListener(new OnStatusChangedListener() {
			public void onStatusChanged(Object source, STATUS status) {
				statusChange(source, status);
			}
		});
	}

	protected void statusChange(Object source, STATUS status) {

		if (source == map && status == STATUS.INITIALIZED) {
			LocationService locService = map.getLocationService();
			locService.setAutoPan(false);

			// 监听
			locService.setLocationListener(new LocationListener() {

				boolean locationChanged = false;

				// Zooms to the current location when first GPS fix arrives.
				public void onLocationChanged(Location loc) {
					if (!locationChanged) {
						locationChanged = true;
						double locy = 0.0;
						double locx = 0.0;
						// locy = loc.getLatitude();
						// locx = loc.getLongitude();
						Log.i("andli", locx + "," + locy);
						locx = 120.54186;
						locy = 31.89647;

						Point wgspoint = new Point(locx, locy);
						// GPS坐标转ArcGis坐标
						Point mapPoint = (Point) GeometryEngine.project(
								wgspoint, SpatialReference.create(4326),
								map.getSpatialReference());
						Unit mapUnit = map.getSpatialReference().getUnit();
						double zoomWidth = Unit.convertUnits(SEARCH_RADIUS,
								Unit.create(LinearUnit.Code.MILE_US), mapUnit);
						Envelope zoomExtent = new Envelope(mapPoint, zoomWidth,
								zoomWidth);
						map.setExtent(zoomExtent);

					}

				}

				public void onProviderDisabled(String arg0) {

				}

				public void onProviderEnabled(String arg0) {
				}

				public void onStatusChanged(String arg0, int arg1, Bundle arg2) {

				}
			});
			// 开启服务
			locService.start();

		}

	}

	protected void onDestroy() {
		super.onDestroy();
		map = null;
	}

}
 


 
  • 大小: 64 KB
分享到:
评论
3 楼 AndLi 2013-01-21  
里面的坐标被我写死了啊,你注释掉就可以了
2 楼 kunlinchen2010 2013-01-12  
求指教,QQ:446482624
1 楼 kunlinchen2010 2013-01-12  
楼主,我按照你的代码,跑在我的机器上,地图是有跳转到YANGSHE区域,但是我的蓝色定位点还是获取了我当前的位置,这是怎么回事呢

相关推荐

Global site tag (gtag.js) - Google Analytics