百度地图学习(Ⅰ)-Android端地图的显示及简单应用

时间:2023-03-08 15:08:23
百度地图学习(Ⅰ)-Android端地图的显示及简单应用

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文件后需要进行在项目中的加载:

百度地图学习(Ⅰ)-Android端地图的显示及简单应用eclipse的加载方式

------------------------------------------------华丽分割线---------------------------------------

小编使用的Android Stdio进行编写的,所以讲述一下as的加载jar包以及so文件:

【添加jar包】-百度地图学习(Ⅰ)-Android端地图的显示及简单应用正如图片所看,首先应该把对应的jar包放到项目的libs文件夹下,然后需要在这个项目下的百度地图学习(Ⅰ)-Android端地图的显示及简单应用,添加这条语句:百度地图学习(Ⅰ)-Android端地图的显示及简单应用,否则你的jar包将无法使用

【添加so文件】-小编根据搜集资料,发现有这样一个方法,经测试可用,这个方法源自国外的Kyle Thielk的博客

百度地图学习(Ⅰ)-Android端地图的显示及简单应用在main文件夹下创建jinLibs,然后把armeabi复制到这个文件夹下面即可

【4】添加密钥配置权限

百度地图学习(Ⅰ)-Android端地图的显示及简单应用(添加密钥)

百度地图学习(Ⅰ)-Android端地图的显示及简单应用(配置权限)

以上代码参考(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】项目完成,效果图如下:

百度地图学习(Ⅰ)-Android端地图的显示及简单应用百度地图学习(Ⅰ)-Android端地图的显示及简单应用百度地图学习(Ⅰ)-Android端地图的显示及简单应用百度地图学习(Ⅰ)-Android端地图的显示及简单应用