`

android baidu_map百度地图

阅读更多
MainActivity.java
package com.example.bdmap;

import java.text.DecimalFormat;
import java.util.HashMap;
import java.util.Map;

import android.app.Activity;
import android.graphics.Color;
import android.graphics.Point;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.BaiduMap.OnMapStatusChangeListener;
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.OnInfoWindowClickListener;
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.MyLocationConfigeration.LocationMode;
import com.baidu.mapapi.map.MyLocationData;
import com.baidu.mapapi.map.OverlayOptions;
import com.baidu.mapapi.model.LatLng;
import com.baidu.mapapi.search.core.SearchResult;
import com.baidu.mapapi.search.geocode.GeoCodeResult;
import com.baidu.mapapi.search.geocode.GeoCoder;
import com.baidu.mapapi.search.geocode.OnGetGeoCoderResultListener;
import com.baidu.mapapi.search.geocode.ReverseGeoCodeOption;
import com.baidu.mapapi.search.geocode.ReverseGeoCodeResult;
import com.baidu.mapapi.utils.DistanceUtil;

public class MainActivity extends Activity implements
		OnGetGeoCoderResultListener {

	public MapView mapView;
	public BaiduMap mBaiduMap;
	public LocationMode mLocationMode;
	public BitmapDescriptor mBitmapDescriptor;
	public LocationClient mLocationClient;
	public MyLocationListenner myLocationListener = new MyLocationListenner();
	boolean isFirst = true;
	boolean isFirsts = true;
	public Marker marker=null;
	public Marker markers=null;
	public GeoCoder geoCoder=null;
	private InfoWindow mInfoWindow=null;
	Map<Marker, ReverseGeoCodeResult> hashMapMarker = new HashMap<Marker, ReverseGeoCodeResult>();
	public Button positioning;
	public LatLng MarkerLatLng=null;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		// SDKInitializer必须在控件加载前初始化
		SDKInitializer.initialize(getApplicationContext());
		setContentView(R.layout.activity_main);
		initGeoCoder();
		initView();
	}

	// 初始化geoCoder
	private void initGeoCoder() {
		// TODO Auto-generated method stub
		geoCoder = GeoCoder.newInstance();
		geoCoder.setOnGetGeoCodeResultListener(this);
	}

	private void initView() {
		// TODO Auto-generated method stub
		mapView = (MapView) findViewById(R.id.mapView);
		mBaiduMap = mapView.getMap();
		// mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);

		// 设置定位按钮点击事件
		positioning = (Button) findViewById(R.id.positioning);
		positioning.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				if (marker!= null) {
					MapStatusUpdate mapStatusUpdate = MapStatusUpdateFactory
							.newLatLng(MarkerLatLng);
					// 设置动画
					mBaiduMap.animateMapStatus(mapStatusUpdate);
				}
			}
		});

		// 开启定位图层
		mBaiduMap.setMyLocationEnabled(true);
		mLocationClient = new LocationClient(this);
		// 通过继承BDLocationListener获取当前位置
		mLocationClient.registerLocationListener(myLocationListener);
		LocationClientOption LocationClientOption = new LocationClientOption();
		// 打开gps
		LocationClientOption.setOpenGps(true);
		// 设置坐标类型
		LocationClientOption.setCoorType("bd09ll");
		// 设置更新时间
		LocationClientOption.setScanSpan(2000);
		mLocationClient.setLocOption(LocationClientOption);
		mLocationClient.start();
		// 移动或改变地图状态时清屏
		mBaiduMap.setOnMapStatusChangeListener(new OnMapStatusChangeListener() {

			@Override
			public void onMapStatusChangeStart(MapStatus arg0) {
				// TODO Auto-generated method stub
				mBaiduMap.hideInfoWindow();
			}

			@Override
			public void onMapStatusChangeFinish(MapStatus arg0) {
				// TODO Auto-generated method stub
				mBaiduMap.hideInfoWindow();
			}

			@Override
			public void onMapStatusChange(MapStatus arg0) {
				// TODO Auto-generated method stub
				mBaiduMap.hideInfoWindow();
			}
		});

		// 地图图标点击事件
		mBaiduMap.setOnMarkerClickListener(new OnMarkerClickListener() {
			@Override
			public boolean onMarkerClick(Marker markert) {
				// TODO Auto-generated method stubMap<Marker,
				// ReverseGeoCodeResult>
				Button button = new Button(getApplicationContext());
				button.setBackgroundResource(R.drawable.popup);
				LatLng latLng = null;
				OnInfoWindowClickListener listener = null;
				for (Map.Entry<Marker, ReverseGeoCodeResult> m : hashMapMarker
						.entrySet()) {
					if (markert == m.getKey()) {
						button.setText(m.getValue().getAddress());
						button.setTextColor(Color.BLACK);
						if (marker == m.getKey()) {
							latLng = marker.getPosition();
						} else {
							latLng = markers.getPosition();
						}
						listener = new OnInfoWindowClickListener() {
							public void onInfoWindowClick() {
								mBaiduMap.hideInfoWindow();
							}
						};
					}
				}
				Point point = mBaiduMap.getProjection()
						.toScreenLocation(latLng);
				point.y -= 50;
				LatLng latLngp = mBaiduMap.getProjection().fromScreenLocation(
						point);
				mInfoWindow = new InfoWindow(button, latLngp, listener);
				mBaiduMap.showInfoWindow(mInfoWindow);
				return true;
			}
		});
	}

	public class MyLocationListenner implements BDLocationListener {
		@Override
		public void onReceiveLocation(final BDLocation location) {
			if (location == null || mapView == null)
				return;
			// 获取当前经纬度并保持到MyLocationData中
			MyLocationData locationData = new MyLocationData.Builder()
					.accuracy(location.getRadius()).direction(0)
					.latitude(location.getLatitude())
					.longitude(location.getLongitude()).build();
			// 显示默认图标
			// mBaiduMap.setMyLocationData(locationData);

			// 更新图标位置
			if (marker==null&&isFirst) {
				LatLng point = new LatLng(locationData.latitude,
						locationData.longitude);
				MarkerLatLng=point;
				geoCoder.reverseGeoCode(new ReverseGeoCodeOption()
						.location(point));
			} else {
				LatLng point = new LatLng(locationData.latitude,
						locationData.longitude);
				MarkerLatLng=point;
				geoCoder.reverseGeoCode(new ReverseGeoCodeOption()
						.location(point));
				trun=false;
			}
		}

		public void onReceivePoi(BDLocation poiLocation) {
		}
	}

	// 设置反Geo和距离按钮点击事件
	public void buttonListener(View view) {
		if (view.getId() == R.id.geoCoderF) {
			EditText latitude = (EditText) findViewById(R.id.latitude);
			EditText longitude = (EditText) findViewById(R.id.longitude);
			if (!latitude.equals("") && !longitude.equals("")) {
				try {
					if(!isFirst){
					trun=true;
					LatLng latLng = new LatLng((Float.valueOf(latitude
							.getText().toString())), (Float.valueOf(longitude
							.getText().toString())));
					geoCoder.reverseGeoCode(new ReverseGeoCodeOption()
							.location(latLng));
					}
					
				} catch (Exception e) {
					// TODO: handle exception
					e.printStackTrace();
					Toast.makeText(MainActivity.this, "输入坐标不正确",
							Toast.LENGTH_SHORT).show();
				}

			}
		}
		if (view.getId() == R.id.distance) {
			if (hashMapMarker.size() > 1) {
				LatLng latLng = hashMapMarker.get(marker).getLocation();
				LatLng latLngs = hashMapMarker.get(markers).getLocation();
				double distances = DistanceUtil.getDistance(latLng, latLngs) / 1000;
				DecimalFormat decimalFormat = new DecimalFormat("#.00");
				TextView textDistance = (TextView) findViewById(R.id.distanceTextView);
				textDistance.setText("~" + decimalFormat.format(distances)
						+ "公里");
				Toast.makeText(MainActivity.this,
						"~" + decimalFormat.format(distances) + "公里",
						Toast.LENGTH_LONG).show();
			} else {
				Toast.makeText(MainActivity.this, "选择点", Toast.LENGTH_SHORT)
						.show();
			}
		}
	}

	// 根据地理位置获取经纬度
	@Override
	public void onGetGeoCodeResult(GeoCodeResult result) {
		// TODO Auto-generated method stub
		if (result == null || result.error != SearchResult.ERRORNO.NO_ERROR) {
			Toast.makeText(MainActivity.this, "未能找到结果", Toast.LENGTH_SHORT)
					.show();
		}
	}

	// 根据经纬度获取地理位置
	public boolean trun=false;
	@Override
	public void onGetReverseGeoCodeResult(ReverseGeoCodeResult result) {
		// TODO Auto-generated method stub
		if (result.getAddress().equals("") || result == null
				|| result.error != SearchResult.ERRORNO.NO_ERROR) {
			//尝试打开GPS及网络
			if(trun)
			{
				Toast.makeText(MainActivity.this, "未能找到该位置信息",Toast.LENGTH_SHORT).show();
			}
			
		} else {
			BitmapDescriptor bitmap;
			OverlayOptions option;
			if (isFirst) {
				isFirst = false;
				bitmap = BitmapDescriptorFactory.fromResource(R.drawable.icon);
				option = new MarkerOptions().position(result.getLocation())
						.icon(bitmap);
				marker = (Marker) mBaiduMap.addOverlay(option);
				hashMapMarker.put(marker, result);
				
				LatLng latLng = new LatLng(result.getLocation().latitude,
						result.getLocation().longitude);
				MapStatusUpdate mapStatusUpdate = MapStatusUpdateFactory
						.newLatLng(latLng);
				mBaiduMap.animateMapStatus(mapStatusUpdate);
				Toast.makeText(MainActivity.this, result.getAddress(),
						Toast.LENGTH_SHORT).show();
				
			} else {
				if(trun){
					
				if (isFirsts) {
					isFirsts = false;
					bitmap = BitmapDescriptorFactory
							.fromResource(R.drawable.icon_marka);
					option = new MarkerOptions().position(result.getLocation())
							.icon(bitmap);
					markers = (Marker) mBaiduMap.addOverlay(option);
					hashMapMarker.put(markers, result);
				}else {
					LatLng latLng = new LatLng(result.getLocation().latitude,
							result.getLocation().longitude);
					markers.setPosition(latLng);
					hashMapMarker.put(markers, result);
				}
				
				LatLng latLng = new LatLng(result.getLocation().latitude,
						result.getLocation().longitude);
				MapStatusUpdate mapStatusUpdate = MapStatusUpdateFactory
						.newLatLng(latLng);
				mBaiduMap.animateMapStatus(mapStatusUpdate);
				Toast.makeText(MainActivity.this, result.getAddress(),
						Toast.LENGTH_SHORT).show();
				
				}else
				{
					MarkerLatLng = new LatLng(result.getLocation().latitude,
							result.getLocation().longitude);
					marker.setPosition(MarkerLatLng);
					hashMapMarker.put(marker, result);
				}
			}
		}
	}

	@Override
	protected void onDestroy() {
		// TODO Auto-generated method stub
		mLocationClient.stop();
		mBaiduMap.setMyLocationEnabled(false);
		mapView.onDestroy();
		marker=null;
		markers=null;
		MarkerLatLng=null;
		mapView = null;
		super.onDestroy();
	}

	@Override
	protected void onPause() {
		// TODO Auto-generated method stub
		mapView.onPause();
		super.onPause();
	}

	@Override
	protected void onResume() {
		// TODO Auto-generated method stub
		mapView.onResume();
		super.onResume();
	}
	
	
	
	

	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		// TODO Auto-generated method stub
		if(keyCode==KeyEvent.KEYCODE_BACK){
			//1
			this.finish();
			//ActivityManager manager=(ActivityManager) getSystemService(ACTIVITY_SERVICE);
			//manager.killBackgroundProcesses("com.example.bdmap");
			//manager.restartPackage("com.example.bdmap");
			
		}
		
		return super.onKeyDown(keyCode, event);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.activity_main, menu);
		return true;
	}

}

activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:orientation="vertical"
    >

   <LinearLayout 
       android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="5"
        android:orientation="vertical"
       >
       <LinearLayout 
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:orientation="horizontal"
           >
       <TextView 
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
            android:text="@string/latitude"
           />
       <EditText 
           android:id="@+id/latitude"
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="22.55"
           />
       <TextView 
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="@string/longitude"
           />
       <EditText 
           android:id="@+id/longitude"
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
            android:layout_weight="1"
              android:text="113.9"
           />
       </LinearLayout>
       <LinearLayout 
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:orientation="horizontal"
           >
       <Button 
           android:id="@+id/geoCoderF"
            android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:layout_weight="1"
           android:onClick="buttonListener"
           android:text="@string/geoCoderF"
           />
       <Button 
            android:id="@+id/distance"
            android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:layout_weight="1"
           android:onClick="buttonListener"
           android:text="@string/distance"
           />
       <TextView 
           android:id="@+id/distanceTextView"
            android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:textSize="20dip"
           android:layout_weight="1"
           android:onClick="buttonListener"
           />
       </LinearLayout>
  </LinearLayout>
    
   <RelativeLayout
       android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        >
    <com.baidu.mapapi.map.MapView
        android:id="@+id/mapView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:clickable="true"
       />
      <Button
         android:id="@+id/positioning"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignParentBottom="true"
         android:layout_alignParentRight="true"
         android:layout_marginBottom="50dip"
         android:background="@drawable/position"/>
    </RelativeLayout>
    
 </LinearLayout>

strings.xml
<resources>

    <string name="app_name">BDMap</string>
    <string name="hello_world">Hello world!</string>
    <string name="menu_settings">Settings</string>
    <string name="title_activity_main">MainActivity</string>
    <string name="geoCoderF">反Geo</string>
    <string name="geoCoder">Geo</string>
    <string name="latitude">经度</string>
    <string name="longitude">纬度</string>
    <string name="distance">距离</string>
</resources>

AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.bdmap"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="15"
        android:targetSdkVersion="15" />

    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.USE_CREDENTIALS" />
    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
    <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />

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

    <uses-permission android:name="android.permission.BAIDU_LOCATION_SERVICE" >
    </uses-permission>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >
    </uses-permission>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" >
    </uses-permission>
    <uses-permission android:name="android.permission.INTERNET" >
    </uses-permission>
    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" >
    </uses-permission>
    <!-- <uses-permission android:name="android.permission.WRITE_APN_SETTINGS"></uses-permission> -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" >
    </uses-permission>
    <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
    <uses-permission android:name="android.permission.WAKE_LOCK" >
    </uses-permission>
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_GPS" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.READ_SMS" />
    <uses-permission android:name="android.permission.SEND_SMS" />
    <!-- SDK1.5需要android.permission.GET_TASKS权限判断本程序是否为当前运行的应用? -->
    <uses-permission android:name="android.permission.GET_TASKS" />
    <uses-permission android:name="android.permission.CAMERA" >
    </uses-permission>
    <uses-permission android:name="android.permission.RECORD_AUDIO" >
    </uses-permission>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" >
    </uses-permission>
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.BROADCAST_STICKY" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    <!-- 来电消音 -->
    <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" >
    </uses-permission>
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

    <supports-screens
        android:anyDensity="true"
        android:largeScreens="true"
        android:normalScreens="false"
        android:resizeable="true"
        android:smallScreens="true" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <meta-data
            android:name="com.baidu.lbsapi.API_KEY"
            android:value="juDScwrocHpeSN6bravN3VAV" />

        <activity
            android:name=".MainActivity"
            android:label="@string/title_activity_main" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <!-- 百度定位服务 -->
        <service
            android:name="com.baidu.location.f"
            android:enabled="true"
            android:process=":remote" >
        </service>
    </application>
</manifest>
分享到:
评论

相关推荐

    Baidu_map-Android.zip_android_android baidu map_baidu map androi

    在Android平台上,百度地图API为开发者提供了一个强大的工具,用于集成地图功能到自己的应用程序中。这份"百度地图Android应用开发指南"文档详细介绍了如何利用百度地图SDK进行Android应用的开发,特别适合初学者...

    Baidu_map(百度地图)Android平台开发指南

    在Android平台上进行Baidu_map(百度地图)的开发是一项常见的任务,这涉及到集成地图功能、定位服务、路线规划以及各种地图交互操作。本指南将详细阐述如何在Android应用中有效地利用百度地图API来实现这些功能。 ...

    Sign_android源码_百度地图_

    这个"Sign_android源码_百度地图_"项目可能包含了一个完整的Android应用程序,它利用百度地图服务来完成用户的签到操作。下面我们将详细探讨相关的技术知识点。 首先,我们要理解Android源码的基本结构。一个标准的...

    百度地图API_BaiduMap_AndroidSDK_v2.1.2

    **百度地图API_BaiduMap_AndroidSDK_v2.1.2**是百度为Android开发者提供的一款集成地图功能的开发工具包,它允许开发者在自己的应用中集成百度地图服务,包括定位、路线规划、地图渲染、地理编码、覆盖物显示等多种...

    Baidu_map(百度地图)Android平台开发指南文档

    百度地图API是一套针对Android平台提供的应用程序接口,旨在帮助开发者轻松访问百度地图服务及相关数据,构建功能丰富且交互性强的地图应用。此API适用于Android 1.5及更高版本设备。 #### 二、基础知识 1. **集成...

    Baidu_map(百度地图)Android平台开发指南(PDF)

    为了让创建的地图Activity能够继承百度地图的API功能,开发者需要让Activity继承自com.baidu.mapapi.MapActivity,并导入相关的类。这个步骤对于让Activity具备地图展示和控制的能力是必要的。 在基础设置完成后,...

    BaiduLBS_AndroidSDK_Lib.zip

    在Android应用开发中,使用地图服务是常见的需求之一,而百度地图SDK则为开发者提供了强大的地图功能支持。本文将详细讲解如何在Android项目中集成"BaiduLBS_AndroidSDK_Lib.zip",以及该压缩包中包含的重要组件和...

    Android 百度地图 SDK v3.0.0 (四) 引入离线地图功能

    在Android应用开发中,集成百度地图SDK可以帮助我们构建丰富的地理位置服务功能。在“Android百度地图SDK v3.0.0 (四) 引入离线地图功能”这一主题中,我们将探讨如何在Android应用程序中利用百度地图SDK实现离线...

    Baidu-MAP.zip_V2 _地图 _地图 导航_地图导航_百度地图 导航

    针对提供的文件信息,我们可以深入探讨一下“Baidu-MAP.zip_V2”中的关键知识点,这是一款基于百度地图V2.0的导航解决方案。 首先,我们要理解的是**百度地图API V2.0**。这是百度地图提供的一套接口,允许开发者在...

    百度地图SDK5.2.1

    《深入解析百度地图SDK 5.2.1:构建高效Android定位与地图应用》 在移动应用开发领域,地图服务已经成为不可或缺的一部分。百度地图SDK 5.2.1是百度为开发者提供的一款强大的Android平台地图服务工具,它集成了丰富...

    C#百度地图API.rar_C#_C# 百度地图_fallq3k_地图 _百度地图API

    2. **百度地图API**: 百度地图API是百度提供的一套用于开发地图相关应用的接口,支持JavaScript、Android、iOS以及WebService等多种平台。在这里,我们关注的是C#版本的API,它允许开发者在C#应用中嵌入地图展示、...

    老罗android 百度地图开发源码

    在Android开发中,百度地图API是一个非常常用的工具,它提供了丰富的地图展示、定位、路径规划等功能,极大地便利了开发者在构建地理位置相关应用时的工作。"老罗android 百度地图开发源码"是一个示例项目,它展示了...

    Android开发之百度地图定位

    在Android开发中,集成百度地图并实现定位功能是一项常见的任务,尤其对于开发地理位置相关的应用来说至关重要。本篇文章将深入探讨如何在Android应用中整合百度地图API,并实现精准、高效的定位服务。 首先,我们...

    百度地图BaiduMap_AndroidSDK_v3.1.0

    包括BaiduMap_AndroidSDK_v3.1.0_Docs.zip、BaiduMap_AndroidSDK_v3.1.0_Lib.zip、BaiduMap_AndroidSDK_v3.1.0_Sample.zip

    Android集成百度地图

    在Android应用开发中,集成百度地图能够为用户提供丰富的地理信息服务,包括定位、覆盖物显示、导航和路线规划等。下面将详细介绍如何在Android项目中整合百度地图SDK,并实现这些功能。 首先,集成百度地图SDK的...

    百度地图API报PERMISSION_UNFINISHED错误

    百度地图API支持多种平台,包括Web端、Android和iOS移动平台等。 ### PERMISSION_UNFINISHED错误解析 #### 错误含义 “PERMISSION_UNFINISHED”错误提示意味着当前应用尚未完成权限申请流程,具体到百度地图API的...

    Android百度离线地图包下载

    要开始下载百度离线地图包,开发者需要拥有一个有效的百度地图API密钥。注册一个百度地图开发者账号后,可以在控制台获取这个密钥。有了密钥,就可以通过百度地图SDK提供的接口来下载所需的离线地图数据。 接下来,...

Global site tag (gtag.js) - Google Analytics