Android位置服务--BaiduMap的使用(2)
2016-04-17 21:49
489 查看
这篇博客是在上一篇博客Android位置服务–BaiduMap的使用(1)的基础上实现的,如果有疑问,不妨先把上一篇博客看明白。
这里我们实现的功能是能根据相应的地理位置名称,将其转化为坐标,同时在地图上相应的点上标记出来,同时可以将这些点通过折线连接在一起。
总体的代码如下
代码中已经有很详细的注释,这里就只在将划线的逻辑讲解一下
首先,我们实例化一个全局的List对象,用于存放我们标记的点的信息
传入经度和纬度,获取点的实例
同时将点放进集合
设置折现的属性:颜色,宽度,折线要穿过的点等信息
添加折线
这样就完成了上述的功能
这里我们实现的功能是能根据相应的地理位置名称,将其转化为坐标,同时在地图上相应的点上标记出来,同时可以将这些点通过折线连接在一起。
总体的代码如下
public class MainActivity extends AppCompatActivity implements View.OnClickListener{ private MapView mapView; private LocationManager locationManager; private Location location; private Button button1,button2,button3; //地图对象的实例 private BaiduMap baiduMap; //搜索模块,也可以去掉地图模块独立使用 private GeoCoder search; private List<LatLng> points; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //使用BaiduMap SDK //在使用SDK个组件之前初始化context信息,传入ApplicationContext SDKInitializer.initialize(getApplicationContext()); setContentView(R.layout.activity_main); init(); //初始化搜索模块,注册事件监听 search.setOnGetGeoCodeResultListener(new OnGetGeoCoderResultListener() { @Override public void onGetGeoCodeResult(GeoCodeResult geoCodeResult) { //当未能找到搜索的位置,或者网络问题,无法找到结果的时候执行 if (geoCodeResult==null||geoCodeResult.error!= SearchResult.ERRORNO.NO_ERROR){ Toast.makeText(MainActivity.this, "抱歉未找到结果", Toast.LENGTH_SHORT).show(); return; } //设置我们搜素地点的图标标识 baiduMap.addOverlay(new MarkerOptions().position(geoCodeResult.getLocation()).icon(BitmapDescriptorFactory.fromResource(R.mipmap.red_dot))); //设置我们当前的地图的中心点 baiduMap.setMapStatus(MapStatusUpdateFactory.newLatLng(geoCodeResult.getLocation())); String str=String.format("经度:%f 纬度%f",geoCodeResult.getLocation().latitude,geoCodeResult.getLocation().longitude); Toast.makeText(MainActivity.this, str, Toast.LENGTH_SHORT).show(); //传入经度和纬度 LatLng point = new LatLng(geoCodeResult.getLocation().latitude,geoCodeResult.getLocation().longitude); points.add(point); } @Override public void onGetReverseGeoCodeResult(ReverseGeoCodeResult reverseGeoCodeResult) {} }); } private void init() { mapView= (MapView) findViewById(R.id.mapView); //获取地图的对象实例 baiduMap=mapView.getMap(); //将搜索模块实例化 search=GeoCoder.newInstance(); button1= (Button) findViewById(R.id.button_address1); button2= (Button) findViewById(R.id.button_address2); button3= (Button) findViewById(R.id.button_line); button1.setOnClickListener(this); button2.setOnClickListener(this); button3.setOnClickListener(this); points=new ArrayList<>(); } @Override protected void onDestroy() { super.onDestroy(); mapView.onDestroy(); } @Override protected void onResume() { super.onResume(); mapView.onResume(); } @Override protected void onPause() { super.onPause(); mapView.onPause(); } @Override public void onClick(View v) { switch (v.getId()){ case R.id.button_address1: search.geocode(new GeoCodeOption().city("北京市").address("海淀区中关村海龙大厦")); break; case R.id.button_address2: search.geocode(new GeoCodeOption().city("北京市").address("西城区西便门")); break; case R.id.button_line: //设置折现的属性:颜色,宽度,折线要穿过的点等信息 OverlayOptions ooPolyline = new PolylineOptions().width(10).color(0xAAFF0000).points(points); //添加折线 baiduMap.addOverlay(ooPolyline); break; } } }
代码中已经有很详细的注释,这里就只在将划线的逻辑讲解一下
首先,我们实例化一个全局的List对象,用于存放我们标记的点的信息
private List<LatLng> points;
传入经度和纬度,获取点的实例
同时将点放进集合
LatLng point = new LatLng(geoCodeResult.getLocation().latitude,geoCodeResult.getLocation().longitude); points.add(point);
设置折现的属性:颜色,宽度,折线要穿过的点等信息
添加折线
OverlayOptions ooPolyline = new PolylineOptions().width(10).color(0xAAFF0000).points(points); baiduMap.addOverlay(ooPolyline);
这样就完成了上述的功能
相关文章推荐
- Android之sharepreference总结
- Android事件分发机制完全解析,带你从源码的角度彻底理解(下)
- csdn博客粘贴代码的方法+android 资源id转uri
- Android事件分发机制完全解析,带你从源码的角度彻底理解(上)
- 学习笔记(二)Activity
- Android SlidingMenu 使用详解
- Android学习(26) -- 数据存储之SQLite数据库的创建
- android错误之Unable to resolve target 'Google Inc.:Google APIs:6'
- android jni 开发入门
- android 动画
- NDK开发历程(一):android native code的调试方法
- Dom4j的应用 xml的使用 android
- 简单实现Activity退出时向下滑动退出的效果
- android studio 快捷键
- Android布局优化一之设计篇
- Eclipse中跟踪调试Android源代码
- Android位置服务--BaiduMap的使用(1)
- Android中的日志输出(StackTraceElement)
- AndroidStudio 安装 配置 优化
- ADT开发android ndk没有NDK选项问题的解决方案