像百度腾讯这样的大网站提供的说明文档往往落后sdk几个光年,看官网的说明已经成了最坑爹的指导,下面介绍一下新版百度地图sdk的引入方法
首先,先注册个百度账号,然后去百度开放平台注册个开发者(比起腾讯百度既不需要上传头像也不用身份证,真是良心企业啊),然后去 http://developer.baidu.com/map/index.php?title=androidsdk/guide/key,获得一个app的key,注意那个安全码的格式是sha1:包名,其中sha1在一个eclipse里面所有工程都是同一个。注册好以后,
其中第三列那一串乱码就是我们要用的key
然后到http://lbsyun.baidu.com/sdk/download?selected=mapsdk_basicmap,mapsdk_searchfunction,mapsdk_lbscloudsearch,mapsdk_calculationtool 下载sdk
勾选两个最基础的:基础地图和定位功能,点击“开发包”
进去以后点全部下载,会下载到一个名字叫BaiduLBS_Android.zip的压缩包,打开这个压缩包里面libs文件夹,我们需要的是BaiduLBS_Android.jar和armeabi-v7a这个文件夹,把aiduLBS_Android.jar拷贝到工程的src目录下,右键add to buildPath,把armeabi-v7a拖到工程里的libs文件夹,这样引入sdk的工作就完成了;
配置好之后是这样的
还需要配置一下xml文件,在<application>标签里面添加两行
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="申请到的key" />
然后所有的配置工作就完成了
给出一个打开activity显示事先定义好位置并显示该位置标记的例程
放置百度地图的控件
<com.baidu.mapapi.map.MapView
android:id="@+id/bmapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true" />
import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.BitmapDescriptor;
import com.baidu.mapapi.map.BitmapDescriptorFactory;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.MarkerOptions;
import com.baidu.mapapi.map.OverlayOptions;
import com.baidu.mapapi.model.LatLng;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
public class MapActivity extends Activity {
MapView mMapView = null;
BaiduMap mBaiduMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SDKInitializer.initialize(getApplicationContext()); //要写在setContentView方法前
setContentView(R.layout.activity_map);
mMapView = (MapView) findViewById(R.id.bmapView);
mBaiduMap = mMapView.getMap();
//普通地图
mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
LatLng point = new LatLng(39.963175, 116.400244);
//构建Marker图标
BitmapDescriptor bitmap = BitmapDescriptorFactory
.fromResource(R.drawable.audi); //指针图标,可以自定义
//构建MarkerOption,用于在地图上添加Marker
OverlayOptions option = new MarkerOptions()
.position(point)
.icon(bitmap);
//在地图上添加Marker,并显示
mBaiduMap.addOverlay(option);
}
}