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;
	}

}
 


 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值