您的位置:首页 > 移动开发 > Android开发

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

2015-03-20 12:56 519 查看
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】项目完成,效果图如下:









内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐