ps:(1.地图应用一定要在真机测试;
2.Design By:Android Stdio;
3.百度地图官方参考链接(http://developer.baidu.com/map/index.php?title=androidsdk);
4.如有不足,请指出,谢谢);
下面我们来研究百度地图:
【1】首先:在使用百度地图的时候需要得到百度地图官方提供的AK码,具体如何获得,请参考(http://developer.baidu.com/map/index.php?title=androidsdk/guide/key)
【2】得到AK码以后需要下载百度官方提供的jar包以及so文件,具体请参考(http://lbsyun.baidu.com/sdk/download?selected=mapsdk_basicmap,mapsdk_searchfunction,mapsdk_lbscloudsearch,mapsdk_calculationtool)
【3】得到jar包以及so文件后需要进行在项目中的加载:
eclipse的加载方式
------------------------------------------------华丽分割线---------------------------------------
小编使用的Android Stdio进行编写的,所以讲述一下as的加载jar包以及so文件:
【添加jar包】-正如图片所看,首先应该把对应的jar包放到项目的libs文件夹下,然后需要在这个项目下的,添加这条语句:,否则你的jar包将无法使用
【添加so文件】-小编根据搜集资料,发现有这样一个方法,经测试可用,这个方法源自国外的Kyle Thielk的博客
在main文件夹下创建jinLibs,然后把armeabi复制到这个文件夹下面即可
【4】添加密钥配置权限
(添加密钥)
(配置权限)
以上代码参考(http://developer.baidu.com/map/index.php?title=androidsdk/guide/hellobaidumap)
【5】添加xml布局文件
<com.baidu.mapapi.map.MapView
android:id="@+id/bmapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true" />
【6】书写java代码(代码实现【1.创建地图,2.显示卫星地图,3.显示实时路况】)
public class MainActivity extends ActionBarActivity {
private MapView mapView=null;
private BaiduMap mBaiduMap=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/*
*注意使用SDK各组件之前初始化Context信息,传入ApplicationContext
*注意该方法要在setContentView之前实现
*/
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
initView(); } private void initView() {
mapView=(MapView)findViewById(R.id.bmapView);
mBaiduMap=mapView.getMap(); //从容器中得到地图
MapStatusUpdate msu= MapStatusUpdateFactory.zoomTo(15.0f); //设置地图的起始标尺
mBaiduMap.setMapStatus(msu);
} @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 boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
/*
*复写菜单选项的点击事件
*/
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId())
{
case R.id.id_map_common:
mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
break;
case R.id.id_map_site:
mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);
break;
case R.id.id_map_traffic:
if(mBaiduMap.isTrafficEnabled()){
mBaiduMap.setTrafficEnabled(false);
item.setTitle("实时交通(Off)");
}else
{
mBaiduMap.setTrafficEnabled(true);
item.setTitle("实时交通(On)");
}
break;
} return super.onOptionsItemSelected(item);
}
}
【7】书写menu_main.xml
<item android:id="@+id/id_map_common"
android:title="@string/map_common"
app:showAsAction="never" />
<item android:id="@+id/id_map_site"
android:title="@string/map_site"
app:showAsAction="never" />
<item android:id="@+id/id_map_traffic"
android:title="@string/map_traffic"
app:showAsAction="never" />
【8】书写string.xml
<string name="map_common">普通地图</string>
<string name="map_site">卫星地图</string>
<string name="map_traffic">实时交通(Off)</string>
【9】项目完成,效果图如下: