`
444878909
  • 浏览: 654807 次
文章分类
社区版块
存档分类
最新评论

百度地图实现与总结..

 
阅读更多

因为公司用到百度地图比较多,所以就自己给自己总结总结:

想要使用百度地图, 1. 你要先注册1个百度账号(到时候申请key需要)

2. 需要百度的SDK


1.2都很简单,可以自行解决了。--- 说实话 官网上的 demo 真心也很详细呢 = = 网址:http://developer.baidu.com/map/sdkandev-6.htm#.E7.AE.80.E4.BB.8B4

现在看下工程



把 需要的东西全部放进工程。

然后就开始看代码吧(---部分代码哦---)。

public class MapActivity  extends  SherlockActivity implements ActionBar.OnNavigationListener{
	
	private ProgressDialogView  progressDialog =null;
	public  BMapManager         mapManager = null;
	public  MKMapViewListener   mMapListtener = null;
	public  MapView             mapView;
	public  MapController       mapController;
	private PopupOverlay        pop;
	
	private LocationListener    locationListener;
	private MapActivity         Instance;	
	private List<PersonInfo>    list_person = null; 
	private List<OverlayItem>   list_overlayItem;
	private OverlayMain         overlayMain;
	
	
	private LocationClient      locationClient;
	private LocationData        locationData;
	private MyLocationOverlay   myLocationOverlay;
	private GeoPoint            currentGP = null;
	private GeoPoint            pGP = null;
	
	//获取数据的
	private AlarmManager        alarManager;
	private PendingIntent       pendingIntent;
	
	private ImageButton         show_mylocation_button;
	public  final   int         INTERENT_FAILD = 123;
	
	
	private Handler  han = new  Handler(){
		public void handleMessage(android.os.Message msg) {
		
		  switch (msg.what) {
			case 1:			
				if( progressDialog.isShowing()){					
					progressDialog.dismiss();
				}
				list_person = (List<PersonInfo>)msg.obj;
				list_overlayItem = null;
				mapView.getOverlays().clear();
				addAllOverlayItem();
				mapView.refresh();
			    break;
			 
			case 2:
				System.out.println("han222222222------");
				Vector v =(Vector)msg.obj;
//				overlayMain = null;			
				mapView.getOverlays().clear();
				mapView.refresh();
				list_overlayItem = null;
				addItem(v);
				mapView.refresh();
			    break; 
			case 11:
				mapView.getOverlays().add(myLocationOverlay);
				mapView.refresh(); 
				break;
				
			case INTERENT_FAILD:
				
				if( progressDialog.isShowing()){					
					progressDialog.dismiss();
				}
				Toast.makeText(getApplicationContext(), "获取数据失败", 
                        Toast.LENGTH_LONG).show();
				break;
			}
		};
	};
	
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		this.setTheme(R.style.Theme_MyTheme);
		super.onCreate(savedInstanceState);
		
		mapManager = new BMapManager(getApplication());
		try {
			mapManager.init(Commons.MapKey, new MKGeneralListener() {
				@Override
				public void onGetPermissionState(int station) {
					if(station == MKEvent.ERROR_NETWORK_CONNECT){
			            Toast.makeText(getApplicationContext(),"您的网络出错了!",Toast.LENGTH_LONG).show();
					}else if(station == MKEvent.ERROR_NETWORK_DATA ){
						Toast.makeText(getApplicationContext(), "输入正确的检索条件!", Toast.LENGTH_LONG).show();				
					}
				}
				
			@Override
			public void onGetNetworkState(int station) {
					if(station == MKEvent.ERROR_PERMISSION_DENIED){
						Toast.makeText(getApplicationContext(), "请在Main.java文件输入正确的授权Key!", 
								                                                      Toast.LENGTH_LONG).show();
					}	
				}
			});
			
		} catch (Exception e) {
			
		}
		
		setContentView(R.layout.activity_map);
		show_mylocation_button = (ImageButton)this.findViewById(R.id.map_mylocation_button);
		initActionBar();
		
		show_mylocation_button.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				Message message = new Message();
				message.what = 11;
				han.sendMessage(message);
			}
		});
		
		Instance =this;
		mapView  =(MapView)this.findViewById(R.id.emlo_mapView);
		mapView.setBuiltInZoomControls(true);        //启用缩放控件
		mapView.getController().enableClick(true);
		
//		overlayMain = new OverlayMain(null , mapView , Instance , list_person);
		mapController = mapView.getController();
		mapController.setZoom(Commons.MapZoom);  
            //设置地图中心点
		//初始化模块 ,注册事件
		initMyLocation();
		
		progressDialog = new ProgressDialogView(MapActivity.this, "获取地图数据中..");
		progressDialog.show();
		getDate();
	  }
	
	  
	 private void initMyLocation(){ 
		 try {
			    locationClient = new LocationClient(this);
			    locationData = new LocationData();
			    locationClient.registerLocationListener(new MyLocationListener());
			    LocationClientOption option = new LocationClientOption();
			    option.setOpenGps(true);        //打开 GPS
			    option.setCoorType("bd09ll");   //设置坐标类型
			    option.setScanSpan(1000);       // 1秒定位一次
			    option.setAddrType("all");
			    option.setPriority(LocationClientOption.NetWorkFirst); //设置网络有限
			    //option.disableCache(true);// true表示禁用缓存定位,false表示启用缓存定位 
			    //option.setProdName(name)   定位设置项目name
			    locationClient.setLocOption(option);
			    locationClient.start();	    
				myLocationOverlay = new MyLocationOverlay(mapView);			
				//mapView.getOverlays().add(myLocationOverlay);
				//myLocationOverlay.enableCompass();//开启指南针
				mapView.refresh(); 
			
		} catch (Exception e) {
			// TODO: handle exception
		}
	  
	 }
	
	
	 public void getDate(){
		 new Thread(new Runnable() {
			@Override
			public void run() {
				try {
					 SoapObject  soapObject = (SoapObject) WebConn.GetWebServiceData(Commons.NameSpace, 
							 Commons.Method, Commons.DZURL, null);
					 System.out.println("soapObject"+ soapObject.toString());
					 List<PersonInfo>   ll= FormatData.getResult(soapObject); 
					 Message message = new Message();
					 message.what = 1;
					 message.obj  = ll;
					 han.sendMessage(message);	 
				 } catch (Exception e) {
					 han.sendEmptyMessage(INTERENT_FAILD);
				 }
				
				
			}
		}).start();
		 
	 }

	
    public void  addAllOverlayItem (){
    	
		Drawable  marker = getResources().getDrawable(R.drawable.l3);
		OverlayItem   overlayItem =null;
		GeoPoint  mapPoint;
		double jingdu;
		double weidu;
		list_overlayItem = new ArrayList<OverlayItem>();
		if(list_person != null){	
   			for (PersonInfo pi : list_person) {	
   				weidu = Double.parseDouble(pi.Latitude);
				jingdu =Double.parseDouble(pi.Longitude);   
				String person =  "姓名:" + pi.Name ;
				String info   =  "部门:" + pi.DepartmentName + " "+
						         "电话:" + pi.PhoneNumber + " "+
						         "最后更新时间:"+ pi.UpdateTime ;
			   mapPoint = new GeoPoint((int )(weidu * 1E6), (int )(jingdu * 1E6));
			   overlayItem = new OverlayItem(mapPoint, person , info);     //覆盖物的这个值你可以取出来弄别的你想弄的事情= =        
			   View view = MapActivity.this.getLayoutInflater().inflate(R.layout.pop_simple, null); 
			   TextView  person_name = (TextView)view.findViewById(R.id.person_simple_name);
			   person_name.setText( pi.Name );				  
			   Bitmap bit_map = BitmapUtil.convertViewToBitMap(view); 			
			   BitmapDrawable  market = new BitmapDrawable(getResources(),bit_map);
			   overlayItem.setMarker(market);		
			   list_overlayItem.add(overlayItem);	 	
   			}		
   			
   			overlayMain = new OverlayMain(null , mapView , Instance , list_person);
   			overlayMain.addItem(list_overlayItem);
   			mapView.getOverlays().add(overlayMain);			
		}
	}
    

	 //时刻定位本人的位置
	 private class MyLocationListener  implements BDLocationListener{
		 @Override
		public void onReceiveLocation(BDLocation bdLocation) {
			if(bdLocation == null){
				return;
			}
			  //个人位置的相数据
			locationData.latitude = bdLocation.getLatitude();    //纬度
			locationData.longitude = bdLocation.getLongitude();  //精度
			locationData.accuracy = bdLocation.getRadius();      //获取服务
			myLocationOverlay.setData(locationData);
			currentGP = new GeoPoint((int)(locationData.latitude * 1E6), (int)(locationData.longitude * 1E6));		
			try {	
				 mapController.setCenter(currentGP);
			     mapView.refresh();
			} catch (Exception e) {
				System.out.println(e.toString());
			}
		}

		@Override
		public void onReceivePoi(BDLocation bdLocation) {
			//这个----------------------------------------------------后面也会详细j
		}
 
	 }

	 
	@Override
	protected void onStop() {
		System.out.println("map_ononStop-----");
		super.onStop();
	}
	
	
	@Override
	protected void onNewIntent(Intent intent) {
		
		System.out.println("map-onNewIntent--");
		String jingdu =intent.getStringExtra("jingdu");
		String weidu = intent.getStringExtra("weidu");
		String name =intent.getStringExtra("name");
		String depart=intent.getStringExtra("depart");
		String phone=intent.getStringExtra("phone");
		String updatetime=intent.getStringExtra("updatetime");
		Vector v = new Vector();
		v.add(jingdu);
		v.add(weidu);
		v.add(name);
		v.add(depart);
		v.add(phone);
		v.add(updatetime);
		Message message = new Message();
		message.what = 2;
		message.obj  = v;
		han.sendMessage(message);
		
	}
	
	
	public void addItem(Vector v){
			 Drawable  marker = getResources().getDrawable(R.drawable.l3);
			 OverlayItem   overlayItem =null;
			 GeoPoint  mapPoint;
			 double jingdu;
			 double weidu;
	
	          list_overlayItem = new ArrayList<OverlayItem>();	
			  jingdu =Double.parseDouble(v.get(0).toString());    //jingdu xiao
			  weidu = Double.parseDouble(v.get(1).toString());    //weidu da
			  String person =  "姓名:" + v.get(2).toString() ;
			  String info   =  "部门:" + v.get(3).toString() + "\n"+
					           "电话:" + v.get(4).toString() + "\n"+
					           "最后更新时间:"+ v.get(5).toString() ;
			
			  mapPoint = new GeoPoint((int )(jingdu * 1E6), (int )(weidu * 1E6));
			  overlayItem = new OverlayItem(mapPoint, person , info);    //覆盖物的这个值你可以取出来弄别的你想弄的事情= =
            
			  View view = MapActivity.this.getLayoutInflater().inflate(R.layout.pop, null); 
			  TextView  person_name = (TextView)view.findViewById(R.id.person_name);
			  TextView  person_depart = (TextView)view.findViewById(R.id.person_depart);
			  TextView  person_phone = (TextView)view.findViewById(R.id.person_phone);
			  TextView  person_lasttime = (TextView)view.findViewById(R.id.person_updatetime);
			  person_name.setText("姓名:" + v.get(2).toString());
			  person_depart.setText("部门:"+ v.get(3).toString());
			  person_phone.setText("电话:"+ v.get(4).toString());
			  person_lasttime.setText("最后更新时间:"+ v.get(5).toString()+"小时前");
			  
			  GeoPoint geoPoint = new GeoPoint((int )(Double.parseDouble(v.get(0).toString()) * 1E6), 
					      (int )(Double.parseDouble(v.get(1).toString()) * 1E6));
			  Bitmap bit_map = BitmapUtil.convertViewToBitMap(view); 			
			  BitmapDrawable  market = new BitmapDrawable(getResources(),bit_map);
			  overlayItem.setMarker(market);		
			
			  list_overlayItem.add(overlayItem);	  			
//				  overlayMain.addItem(overlayItem);  	
		      overlayMain = new OverlayMain(null , mapView , Instance , list_person);
		      overlayMain.addItem(list_overlayItem);
		      mapView.getOverlays().add(overlayMain);
	 }
	
	
	@Override
	protected void onRestart() {
		System.out.println("map_onRestart-----");
		super.onRestart();
	}
	 
	@Override
	protected void onDestroy() {
		System.out.println("map_onDestroy-----");
		if(locationClient!= null){
			locationClient.stop();
		
		}
		if( mapManager != null){			
			mapManager.destroy();
			mapManager = null;
		}
		mapView.destroy();	
		
		super.onDestroy();
	}

	
	
	//-------------------------- actionBar ----------------- 的一些操作(后面也会详细说说 actionbar)-------------------
	
	public void initActionBar(){
		getSupportActionBar().setDisplayUseLogoEnabled(true);
		getSupportActionBar().setDisplayShowHomeEnabled(false);
		
		getSupportActionBar().setHomeButtonEnabled(false);
		getSupportActionBar().setTitle("辽宁省环境保护厅定位系统");
	}

	@Override
	public boolean onCreatePanelMenu(int featureId, com.actionbarsherlock.view.Menu  menu) {
		SubMenu subMenu = menu.addSubMenu("");
		subMenu.add(0, 1, 0, "刷新");
		subMenu.add(0, 1, 1, "人员列表");
		subMenu.setIcon(R.drawable.ic_action_overflow);
		MenuItem subMenuItem = subMenu.getItem();
		subMenuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS
				| MenuItem.SHOW_AS_ACTION_WITH_TEXT);
		
		super.onCreateOptionsMenu(menu);
		return true;
	};

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		if(item.getItemId() ==  1){		
		  switch (item.getOrder()) {
		    case 0:  //刷新
		    	progressDialog = new ProgressDialogView(MapActivity.this, "正在获取数据");
		    	progressDialog.show();
		    	getDate();
				break;
        	case 1:   //进入人员列表       		
        		this.startActivity(new Intent().setClass(this, EmployeeListActivity.class));
				break;
			}
		}
		return false;
	}

	@Override
	public boolean onNavigationItemSelected(int itemPosition, long itemId) {
		return false;
	}

    
	//  定时的功能
	public void dingshi(){		 
		 alarManager =(AlarmManager)this.getSystemService(Context.ALARM_SERVICE);
		 Intent in= new Intent().setAction("com.lvchuang.ws");
		 int requestCode =0 ;
		 pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 
					                                    requestCode, in, PendingIntent.FLAG_UPDATE_CURRENT);
		 int n = (int) (SystemClock.elapsedRealtime() +  Commons.nn);
		 // n秒后发送       循环 nn 发送
		 alarManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, n, Commons.nn, pendingIntent);

	     //alarManager.cancel(operation)取消
		 //alarManager = null;
	 }
	 
	
}

自定义图层

  1. /*
  2. *要处理overlay点击事件时需要继承ItemizedOverlay
  3. *不处理点击事件时可直接生成ItemizedOverlay.
  4. */
  5. classOverlayTestextendsItemizedOverlay<OverlayItem>{
  6. //用MapView构造ItemizedOverlay
  7. publicOverlayTest(Drawablemark,MapViewmapView){
  8. super(mark,mapView);
  9. }
  10. protectedbooleanonTap(intindex){
  11. //在此处理item点击事件
  12. System.out.println("itemonTap:"+index);
  13. returntrue;
  14. }
  15. publicbooleanonTap(GeoPointpt,MapViewmapView){
  16. //在此处理MapView的点击事件,当返回true时
  17. super.onTap(pt,mapView);
  18. returnfalse;
  19. }
  20. //自2.1.1开始,使用add/remove管理overlay,无需重写以下接口
  21. /*
  22. @Override
  23. protectedOverlayItemcreateItem(inti){
  24. returnmGeoList.get(i);
  25. }
  26. @Override
  27. publicintsize(){
  28. returnmGeoList.size();
  29. }
  30. */
  31. }

因为 直接很多的例子很多,所以我就结合自己部分应用的代码直接贴出来了。想要更详细的了解还是要看,文章的开头 百度地图官网,例子注释狠详细。

下面拿过来的

  1. <!--使用网络功能所需权限-->
  2. <uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>

  3. <uses-permissionandroid:name="android.permission.INTERNET"/>

  4. <uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/>

  5. <uses-permissionandroid:name="android.permission.CHANGE_WIFI_STATE"/>

  6. <!--SDK离线地图和cache功能需要读写外部存储器-->
  7. <uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

  8. <!--获取设置信息和详情页直接拨打电话需要以下权限-->
  9. <uses-permissionandroid:name="android.permission.READ_PHONE_STATE"/>

  10. <uses-permissionandroid:name="android.permission.CALL_PHONE"/>
  11. <!--使用定位功能所需权限,demo已集成百度定位SDK,不使用定位功能可去掉以下6项-->
  12. <uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"/>

  13. <permissionandroid:name="android.permission.BAIDU_LOCATION_SERVICE"/>

  14. <uses-permissionandroid:name="android.permission.BAIDU_LOCATION_SERVICE"/>
  15. <uses-permissionandroid:name="android.permission.ACCESS_COARSE_LOCATION"/>

  16. <uses-permissionandroid:name="android.permission.ACCESS_MOCK_LOCATION"/>

  17. <uses-permissionandroid:name="android.permission.ACCESS_GPS"/>

配置Activity:

横竖屏切换后Activity会重新执行onCreat函数,但是在Android工程的Mainfest.xml中加入android:screenOrientation="user" android:configChanges="orientation|keyboardHidden"之后,横竖屏切换之后就不会去执行OnCreat函数了,而是会去调用onConfigurationChanged(),这样我们就能控制横竖屏的切换了。

  1. <activityandroid:name=".MapDemo"
  2. android:screenOrientation="sensor"
  3. android:configChanges="orientation|keyboardHidden">
  4. </activity>

添加屏幕及版本支持:

  1. <supports-screensandroid:largeScreens="true"
  2. android:normalScreens="true"
  3. android:smallScreens="true"
  4. android:resizeable="true"
  5. android:anyDensity="true"/>
  6. <uses-sdkandroid:minSdkVersion="7"></uses-sdk>

第三步:在布局xml文件中添加地图控件,布局文件保存为activity_main.xml:

  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical"
  4. android:layout_width="fill_parent"
  5. android:layout_height="fill_parent">
  6. <TextViewandroid:layout_width="fill_parent"
  7. android:layout_height="wrap_content"
  8. android:text="helloworld"/>
  9. <com.baidu.mapapi.map.MapViewandroid:id="@+id/bmapsView"
  10. android:layout_width="fill_parent"
  11. android:layout_height="fill_parent"
  12. android:clickable="true"/>
  13. </LinearLayout>







分享到:
评论

相关推荐

    JS点击百度地图获取坐标代码.zip

    在JavaScript(JS)中,利用百度地图API可以实现与地图的交互,如搜索地理位置和获取点击位置的坐标值。这个"JS点击百度地图获取坐标代码.zip"文件包含了一个基本示例,通过`index.html`文件展示了如何实现这一功能...

    百度地图接口源文件与例子.gz

    本压缩包"百度地图接口源文件与例子.gz"提供了一个使用Qt框架实现的示例,帮助开发者理解和应用百度地图的接口。这里我们将深入探讨相关知识点。 首先,**百度地图接口**是百度开放平台提供的服务,它允许开发者...

    百度地图API实现热力地图

    总结一下,实现“百度地图API实现热力地图”需要以下步骤: 1. 注册百度地图开发者账号并获取API密钥。 2. 使用Python库(如geopy)处理经纬度数据。 3. 使用matplotlib和seaborn等库进行数据归一化和热力图绘制。 4...

    百度地图类库 路书.zip

    总结起来,百度地图API 1.2提供的路书功能可以帮助开发者创建动态的路线动画,通过合理的编程技巧,可以实现marker沿着规划的路线平滑移动,并配合各种交互式控制。在实际项目中,根据需求调整速度、添加动画效果,...

    arcgis api 3.x for js 入门开发系列十七在线天地图、百度地图、高德地图.zip

    2. 创建百度地图图层:使用esri/layers/ArcGISDynamicMapServiceLayer加载百度地图服务,将服务URL设置为百度地图的WMS服务地址,并附加API Key。 3. 添加到地图:将图层添加到地图实例。 示例代码: ```javascript...

    百度地图api 轨迹回放

    总结来说,实现百度地图API的轨迹回放功能主要包括以下几个步骤: 1. 获取并存储轨迹坐标数据。 2. 使用`BMap.Marker`和`BMap.Polyline`在地图上绘制轨迹。 3. 使用`setTimeout`定时更新,模拟轨迹回放。 4. 可选:...

    百度地图测距工具:DistanceTool-min.js

    它基于JavaScript语言,适用于Web端的应用开发,与百度地图API紧密结合,让用户能够直观地在地图上选取起点和终点,实时计算出它们之间的直线距离或实际行走距离。这对于需要进行路径规划、地理数据分析或评估地理...

    毕业论文百度地图所用数据分析.doc

    在毕业论文中,分析百度地图所用的数据,涉及到多个层次的知识点,包括地图数据的分类、数据来源、采集方法以及显示模型。 【地图数据分类与来源】 地图数据可以分为两大类:矢量数据和栅格数据。矢量数据以点、线...

    基于百度地图实现的定位功能_地图定位.zip

    总结起来,基于百度地图实现定位功能主要包括以下几个步骤: 1. 引入百度地图JavaScript API并获取API密钥。 2. 创建地图实例并设置初始显示。 3. 使用`BMap.Geolocation`对象获取用户位置。 4. 在地图上展示定位...

    计算机毕业设计_基于安卓系统手机电子地图应用程序设计.docx

    总的来说,这款基于Android的电子地图应用程序结合了百度地图API,实现了地图浏览、导航规划和公交查询等多种功能,满足了用户出行需求。在设计与实现过程中,充分考虑了用户体验,力求界面简洁、操作简单,且具有较...

    百度离线地图v2.1.zip

    百度离线地图v2.1是百度地图API的一个离线解决方案,它允许开发者在本地存储地图数据,从而在没有网络连接时提供地图浏览服务。这个版本包含了卫星混合地图功能,让用户能够在离线状态下享受到与在线地图相似的视觉...

    leaflet加载百度、高德、谷歌、天地图等在线地图

    在本文中,我们将详细介绍如何利用Leaflet这一流行的开源JavaScript库来加载百度地图、高德地图、谷歌地图以及天地图等多种在线地图服务。Leaflet因其轻量级、高性能且易于使用的特性而广受开发者欢迎,它支持多种...

    百度地图自定义跳动的点,当有数据更新时提示加(增加的量)

    总结来说,这个项目展示了如何利用百度地图API创建自定义的动态标记,并在数据更新时显示相关信息。这涉及到地图API的使用、CSS动画、JavaScript事件处理和异步数据获取等多个技术点,对于提升Web开发技能非常有帮助...

    百度地图密钥.txt

    根据给定文件的信息,我们可以提炼出与“百度地图密钥”相关的知识点,主要涉及百度地图API的使用、密钥的获取及应用等几个方面。 ### 百度地图API概述 百度地图API是一套开放的地图服务接口,允许开发者将地图...

    基于百度API地图获取位置代码.zip

    总结来说,"基于百度API地图获取位置代码.zip"提供了一个实用的示例,演示了如何利用百度地图API在网页应用中获取地理位置信息。通过学习这个项目,开发者可以更好地理解和应用地图服务,提升他们的项目功能和用户...

    百度地图离线API 1.3双击map.xml,可以加载里面的离线地图

    总结来说,百度地图离线API 1.3提供了一种在无网络环境下的地图解决方案,通过`map.xml`文件加载本地地图数据,实现了离线导航和定位。对于开发者而言,理解和掌握这一API能够极大地拓展应用的适用范围,提升用户...

    百度地图API开发画线工具

    总结起来,百度地图API的“画线工具”开发涉及到地图初始化、坐标处理、路径绘制以及样式定制等多个环节。通过熟练掌握这些知识点,开发者可以创建出满足各种需求的地图应用。在实际操作中,结合“drawline.html”...

    百度地图api实现部分功能,根据多个坐标连成轨迹、坐标拾取、实现多个标注点并带信息窗口

    总结来说,使用百度地图API可以实现各种地图相关的功能,包括绘制轨迹、拾取坐标和创建标注点。通过深入理解和实践,开发者可以构建出功能强大的地图应用,满足不同业务场景的需求。而提供的`Bmap-master`资源包则是...

    Android 仿百度地图气泡程序源码.zip

    在Android开发中,有时我们需要实现类似百度地图那样的信息气泡效果,这通常涉及到地图API的使用、自定义视图以及布局设计。这份"Android 仿百度地图气泡程序源码"是一个很好的学习资源,它可以帮助开发者理解如何在...

    Echarts+百度地图_散点图完整版demo

    在本文中,我们将深入探讨如何将ECharts图表库与百度地图API结合,创建一个功能完备的散点图示例。ECharts是一个由百度开发的开源JavaScript数据可视化库,提供了丰富的图表类型,包括折线图、柱状图、饼图以及地图...

Global site tag (gtag.js) - Google Analytics