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轨迹的更多相关文章
- ArcGIS for Android地图上实际距离与对应的屏幕像素值计算
本篇文章主要介绍了"ArcGIS for Android地图上实际距离与对应的屏幕像素值计算",主要涉及到ArcGIS for Android地图上实际距离与对应的屏幕像素值计算方 ...
- GPS/轨迹追踪、轨迹回放、围栏控制
折腾一个多月终于弄完了这个项目,起初都未曾接触GPS/轨迹追踪.轨迹回放.圈划围栏...等一些在百度地图或者Googel地图操作的一些业务,后端的业务相对来说简单点 cas单点登录,mongdb灵活的 ...
- 强烈推荐:Android史上最强大的自定义任务软件Tasker
强烈推荐:Android史上最强大的自定义任务软件Taskerhttp://bbs.mumayi.com/thread-28387-1-1.html(出处: 木蚂蚁手机乐园) Android上的Tas ...
- Android权限全记录(转)
常用权限: 读写存储卡装载和卸载文件系统 android.permission.WRITE_EXTERNAL_STORAGE android.permission.READ_EXTERNAL_STOR ...
- (转) Android平台上关于IM的实践总结
前言 IM通信在互联网发展到现在已经是码农的世界里人尽皆知的技术,特别在当下移动互联网迅猛发展的时代这种技术的开发也更加火热,其中老牌的代表作就有QQ和MSN,和最近新崛起的微信,默默,易信,来往等眼 ...
- Arcgis android - Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE
报错: Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE Please check logcat output for more deta ...
- 如何在 Android 手机上实现抓包?
如何在 Android 手机上实现抓包? http://www.zhihu.com/question/20467503 我想知道某个应用究竟在数据提交到哪里,提交了什么.网上的教程太复杂,不想麻烦.有 ...
- 如何增强ArcGIS插值图出图效果
如何增强ArcGIS插值图出图效果 by 李远祥 在一些科研领域,经常会遇到使用插值的方式进行处理,并生成最终的插值图.插值图在ArcGIS里面非常容易生成,只要具备了采用点数据,通过ArcToolB ...
- arcgis android 中shapefile的加载
前言 本文为大家分享arcgis android 中shapefile的加载,默认你有java环境,懂一定的android基础知识,默认你已经安装android studio.如缺乏以上环境和知识,请 ...
随机推荐
- Nginx 支持 CI 框架的配置并禁止使用 ip 访问
#CIserver { listen 80; server_name www.ci.com; index index.php index ...
- awakeFromNib与viewDidLoad的区别
当一个nib文件对应两个类,File's Owner的class为XXXViewController,Objects下的View对应的为XXXView时: awakeFromNib:在XXXView. ...
- Frame练习-打开图片
import java.awt.EventQueue; import java.awt.event.*; import java.io.*; import javax.swing.*; public ...
- 【转载】VMware虚拟机修改硬盘容量大小
很多人在安装虚拟机系统的时候,为了节省硬盘空间,把硬盘容量设置得较小,可是后来发现硬盘容量不够用了.在VMware中又不能直接修改虚拟机的硬盘容量大小,或者重建虚拟机系统,非常麻烦. 其实在VMwar ...
- JS判断是否已经到达页面底部
$(window).scroll(function(){ var scrollTop=$(this).scrollTop(); var scrollHeight=$(document).height( ...
- Swift语言—常量、变量、类型赋值
常量:常量在作用域内不能被赋值且不会发生改变,只读不写,每个常量都必须有唯一的名字和内存空间:关键字:let 变量:变量在作用区域内可以它的值可以被改变,可读可写可覆盖,每个常量都必须有唯一的名字 ...
- sqoop将关系型数据库的表导入hive中
1.sqoop 将关系型数据库的数据导入hive的参数说明:
- android中图片的三级缓存cache策略(内存/文件/网络)
实现图片缓存也不难,需要有相应的cache策略.这里我采用 内存-文件-网络 三层cache机制,其中内存缓存包括强引用缓存和软引用缓存(SoftReference),其实网络不算cache,这里姑且 ...
- SDK、MFC、QT界面生成的机制
1.SDK进行界面设计的机制 (1)设计窗口类 (2)注册窗口类 (3)创建窗口 (4)显示及更新窗口 (5)消息循环,操作系统接收到应用程序的窗口消息,将消息投递到队列中,通过GetMessage( ...
- 从零开始学习Node.js例子七 发送HTTP客户端请求并显示响应结果
wget.js:发送HTTP客户端请求并显示响应的各种结果 options对象描述了将要发出的请求.data事件在数据到达时被触发,error事件在发生错误时被触发.HTTP请求中的数据格式通过MIM ...