首页 > 代码库 > arcgis android 图上记录gps轨迹
arcgis android 图上记录gps轨迹
原文 arcgis android 图上记录gps轨迹
public class MainActivity extends Activity { MapView mMapView; LocationDisplayManager lDisplayManager = null; GraphicsLayer gpsGraphicsLayer; Polyline mPolyline; int pointCount = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // after the content of this activity is set // the map can be accessed from the layout mMapView = (MapView) findViewById(R.id.map); ArcGISTiledMapServiceLayer tile = new ArcGISTiledMapServiceLayer("http://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineCommunity_Mobile/MapServer"); mMapView.addLayer(tile); gpsGraphicsLayer = new GraphicsLayer(); mMapView.addLayer(gpsGraphicsLayer); mPolyline = new Polyline(); mMapView.setOnStatusChangedListener(new OnStatusChangedListener() { @Override public void onStatusChanged(Object source, STATUS status) { if (source == mMapView && status == STATUS.INITIALIZED) { lDisplayManager = mMapView.getLocationDisplayManager();//获取LocationDisplayManager lDisplayManager.setAutoPanMode(LocationDisplayManager.AutoPanMode.OFF); lDisplayManager.setShowLocation(false);//不显示当前位置,坐标系不一致坐标偏移严重 lDisplayManager.setShowPings(false); lDisplayManager.setAccuracyCircleOn(false); lDisplayManager.setAllowNetworkLocation(true); lDisplayManager.setLocationListener(new LocationListener() { @Override public void onLocationChanged(Location loc) { //火星坐标转换 double[] gcj = CoordinateConvert.wgs2GCJ(loc.getLatitude(), loc.getLongitude()); Point wgspoint = new Point(gcj[1], gcj[0]); Point p = (Point) GeometryEngine.project(wgspoint, SpatialReference.create(SpatialReference.WKID_WGS84), mMapView.getSpatialReference()); SimpleMarkerSymbol ptSym = new SimpleMarkerSymbol(Color.BLUE, 15, SimpleMarkerSymbol.STYLE.CIRCLE); Graphic graphic = new Graphic(p, ptSym, null); if (pointCount == 0) { mPolyline.startPath(p.getX(), p.getY()); mMapView.zoomTo(p, 17); } else { mPolyline.lineTo(p.getX(), p.getY());//点画线 mMapView.centerAt(p, true); } gpsGraphicsLayer.removeAll(); SimpleLineSymbol lineSym = new SimpleLineSymbol(Color.RED, 10); Graphic g = new Graphic(mPolyline, lineSym); gpsGraphicsLayer.addGraphic(g); pointCount++; gpsGraphicsLayer.addGraphic(graphic); } @Override public void onProviderDisabled(String arg0) { } @Override public void onProviderEnabled(String arg0) { } @Override public void onStatusChanged(String arg0, int arg1, Bundle arg2) { } }); // Actionlistener lDisplayManager.start(); } } }); } }
arcgis android 图上记录gps轨迹
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。