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


    }

}
复制代码

 

没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。



    本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/arxive/p/6243776.html ,如需转载请自行联系原作者


相关文章
|
6天前
|
JSON Java 定位技术
【Android App】GPS获取定位经纬度和根据经纬度获取详细地址讲解及实战(附源码和演示 超详细)
【Android App】GPS获取定位经纬度和根据经纬度获取详细地址讲解及实战(附源码和演示 超详细)
418 0
|
6天前
|
XML Java 定位技术
【Android App】定位导航GPS中开启手机定位功能讲解及实战(附源码和演示 超详细)
【Android App】定位导航GPS中开启手机定位功能讲解及实战(附源码和演示 超详细)
138 0
|
9月前
|
API Android开发
Android:自定义沿着曲线轨迹移动
实现这样的一个需求,最主要的是曲线的绘制,和如何设置移动的icon轨迹,这两部分攻克之后,这个需求也就完成了。
Android:自定义沿着曲线轨迹移动
|
Java Shell 定位技术
Android 6.0 默认关闭定位和GPS,开启后默认选省电,永不休眠
Android 6.0 默认关闭定位和GPS,开启后默认选省电,永不休眠
222 0
|
数据可视化 Linux 数据库
TelecomLocate ---- Android与服务器端实时运动数据传输渲染与轨迹分类可视化
本应用是通过Android应用程序记录用户运动轨迹的数据,并将数据保存在服务器上。服务器上基于Play2框架的web应用程序,可以将运动数据可视化,并进行分类。
TelecomLocate ---- Android与服务器端实时运动数据传输渲染与轨迹分类可视化
|
数据可视化 定位技术 开发工具
|
定位技术 Android开发 Windows
|
定位技术 Android开发
xamarin android使用gps定位获取经纬度
看了文章你会得出以下几个结论 1.android定位主要有四种方式GPS,Network(wifi定位、基站定位),AGPS定位 2.绝大部分android国产手机使用network进行定位是没有作用的,肯定是无法获取获取位置信息(当然也肯定是有办法解决这种问题的) 3.android 的GPS定位需要一定时间的,大概一分钟左右。
2385 0