android 百度地图sdk v3.4 绘制历史轨迹
发布日期:2022-02-14 23:02:38
浏览次数:29
分类:技术文章
本文共 4915 字,大约阅读时间需要 16 分钟。
package com.example.locationapp; import java.util.ArrayList; import java.util.List; import com.baidu.mapapi.SDKInitializer; import com.baidu.mapapi.map.BaiduMap; import com.baidu.mapapi.map.BaiduMap.OnMarkerClickListener; import com.baidu.mapapi.map.BitmapDescriptor; import com.baidu.mapapi.map.BitmapDescriptorFactory; import com.baidu.mapapi.map.InfoWindow; import com.baidu.mapapi.map.MapStatus; import com.baidu.mapapi.map.MapStatusUpdate; import com.baidu.mapapi.map.MapStatusUpdateFactory; import com.baidu.mapapi.map.MapView; import com.baidu.mapapi.map.Marker; import com.baidu.mapapi.map.MarkerOptions; import com.baidu.mapapi.map.OverlayOptions; import com.baidu.mapapi.map.Polyline; import com.baidu.mapapi.map.PolylineOptions; import com.baidu.mapapi.model.LatLng; import com.baidu.mapapi.model.LatLngBounds; import com.baidu.mapapi.utils.CoordinateConverter; import com.baidu.mapapi.utils.CoordinateConverter.CoordType; import com.example.bin.Info; import android.os.Bundle; import android.app.Activity; import android.graphics.Point; import android.util.Log; import android.view.LayoutInflater; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.TextView; public class MainActivity extends Activity { MapView mMapView = null; private BaiduMap mBaiduMap; private View popview; InfoWindow mInfoWindow; //信息图层 //bean类 List<Info> infos; Info info; LatLng latlng; List<LatLng> latLngPolygon; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); SDKInitializer.initialize(getApplicationContext()); setContentView(R.layout.activity_main); mMapView = (MapView) findViewById(R.id.bmapView); mBaiduMap = mMapView.getMap(); //设定中心点坐标 LatLng cenpt = new LatLng(34.75557,113.798519); //定义地图状态 MapStatus mMapStatus = new MapStatus.Builder() .target(cenpt) .zoom(18) .build(); //定义MapStatusUpdate对象,以便描述地图状态将要发生的变化 MapStatusUpdate mMapStatusUpdate = MapStatusUpdateFactory.newMapStatus(mMapStatus); //改变地图状态 mBaiduMap.setMapStatus(mMapStatusUpdate); //添加多个点,从bean得到数据 info = new Info(); infos = info.infos; for (int i=0;i<infos.size();i++) { System.out.println("------"+infos.size()); latlng = new LatLng(infos.get(i).getLatitude(), infos.get(i).getLongitude()); System.out.println("========"+latlng); BitmapDescriptor bitmap2 = BitmapDescriptorFactory.fromResource(R.drawable.location_arrows); OverlayOptions options2 = new MarkerOptions().position(latlng).icon(bitmap2); mBaiduMap.addOverlay(options2); } //多个标记点的点击事件 mBaiduMap.setOnMarkerClickListener(new OnMarkerClickListener() { @Override public boolean onMarkerClick(Marker marker) { final LatLng ll = marker.getPosition(); Log.e("标签", "--!" + ll); Point p = mBaiduMap.getProjection().toScreenLocation(ll); Log.e("标签", "--!" + p.x + " , " + p.y); p.y -= 47; LatLng llInfo = mBaiduMap.getProjection().fromScreenLocation(p); // (2) //生成一个TextView用户在地图中显示InfoWindow TextView location = new TextView(getApplicationContext()); location.setBackgroundResource(R.drawable.location_tips); location.setPadding(5, 5, 5, 5); location.setTextColor(getResources().getColor(android.R.color.white)); location.setText("5.14-15:32"); mInfoWindow = new InfoWindow(location, ll, -30); //为弹出的InfoWindow添加点击事件 //显示InfoWindow mBaiduMap.showInfoWindow(mInfoWindow); //为弹出的InfoWindow添加点击事件 location.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { //隐藏InfoWindow mBaiduMap.hideInfoWindow(); } }); return true; } }); //绘制折线图层 LatLng latlng1 = new LatLng(34.72557,113.798519); LatLng latlng2 = new LatLng(34.75457,113.768519); LatLng latlng3 = new LatLng(34.75357,113.790519); LatLng latlng4 = new LatLng(34.75657,113.788519); latLngPolygon = new ArrayList<LatLng>(); latLngPolygon.add(latlng1); latLngPolygon.add(latlng2); latLngPolygon.add(latlng3); latLngPolygon.add(latlng4); PolylineOptions po = new PolylineOptions().color(getResources().getColor(android.R.color.holo_red_dark)).points(latLngPolygon); mBaiduMap.addOverlay(po); // 将GPS设备采集的原始GPS坐标转换成百度坐标 CoordinateConverter converter = new CoordinateConverter(); converter.from(CoordType.GPS); // sourceLatLng待转换坐标 converter.coord(latlng1); LatLng desLatLng1 = converter.convert(); System.out.println("原始:"+latlng1+"转换后:"+desLatLng1); converter.coord(latlng2); LatLng desLatLng2 = converter.convert(); converter.coord(latlng3); LatLng desLatLng3 = converter.convert(); converter.coord(latlng4); LatLng desLatLng4 = converter.convert(); } @Override protected void onDestroy() { super.onDestroy(); //在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理 mMapView.onDestroy(); } @Override protected void onResume() { super.onResume(); //在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理 mMapView.onResume(); } @Override protected void onPause() { super.onPause(); //在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理 mMapView.onPause(); }}
源码地址:http://download.csdn.net/detail/fei900724/8701271
转载地址:https://blog.csdn.net/fei900724/article/details/45727431 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
不错!
[***.144.177.141]2024年03月22日 22时53分58秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
2021-05-19 ASP.NET Core笔试题 说说RESTful是什么。
2019-04-26
2021-05-19 ASP.NET Core笔试题 gRPC有几种模式?
2019-04-26
2021-05-20 ASP.NET Core笔试题 说说什么是导航属性和引用属性。
2019-04-26
2021-05-20 Kafka面试题 使用Kafka有什么优点和缺点?
2019-04-26
2021-05-20 Kafka面试题 请说明什么是传统的消息传递方法?
2019-04-26
2021-05-20 Kafka面试题 请说明Kafka相对传统技术有什么优势?
2019-04-26
2021-05-20 Kafka面试题 解释Kafka的用户如何消费信息?
2019-04-26
2021-05-20 Kafka面试题 有可能在生产后发生消息偏移吗?
2019-04-26
2021-05-20 Kafka面试题 Kafka的设计时什么样的呢?
2019-04-26
2021-05-20 Kafka面试题 数据传输的事物定义有哪三种?
2019-04-26