Android位置服务--BaiduMap的使用(2)
来源:互联网 发布:ipp6.0软件下载 编辑:程序博客网 时间:2024/05/21 06:20
- 这篇博客是在上一篇博客Android位置服务–BaiduMap的使用(1)的基础上实现的,如果有疑问,不妨先把上一篇博客看明白。
这里我们实现的功能是能根据相应的地理位置名称,将其转化为坐标,同时在地图上相应的点上标记出来,同时可以将这些点通过折线连接在一起。
总体的代码如下
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);
- 这样就完成了上述的功能
0 0
- Android位置服务--BaiduMap的使用(2)
- Android位置服务--BaiduMap的使用(1)
- Android 位置服务——BaiduMap的使用
- 定位到我的位置(BaiduMap)
- Android 使用基于位置的服务(一)
- Android 使用基于位置的服务(二)
- Android的位置服务
- 【新手入门】Android应用程序使用BaiduMap API获取KEY的方法
- baiduMap 使用Fragment的方法
- BaiduMap SDK的使用流程
- Android基于位置的服务开发,百度地图的使用
- BaiduMap SDK2.1.1 — 我的位置图层(MyLocationOverlay)
- 百度地图BaiduMap--学习(二)------定位到自己的位置之没反应
- Android 位置服务——BaiduLocation的使用
- Android基于位置的服务
- Android 基于位置的服务
- Android之位置的服务
- BaiduMap SDK使用中遇到的问题
- 【leetcode】String——Roman to Integer(13)
- MarkDown的使用
- Android沉浸式状态栏小结
- Java数组操作的方法
- 问题1-网上商城
- Android位置服务--BaiduMap的使用(2)
- linux命令
- 西电网络赛 - B
- Pascal's Triangle II --杨辉三角形-链表和数组
- 第四周项目四(2)-程序分析
- 西电网络赛 - C
- Linux---centos搭建git服务器
- linux文件权限详解
- CentOS7.0下用c语言编程输出mysql5.7数据库某张表中的数据到txt文件中