介绍一下石家庄停车位在线预约平台移动端,效果图如下,以市面上的停车场应用软件去高仿它的应用机制,大家可以参考一下商用化程度很高的app去模仿学习开发,下面记录一下百度地图开发学习过程。
HelloMap工程
1.申请AK(API Key)
要在app中嵌入百度地图需要一个百度地图的api key,我们可以到http://lbsyun.baidu.com/apiconsole/key去免费申请一个。具体详细配置我们官方给了介绍http://lbsyun.baidu.com/index.php?title=androidsdk/guide/key,仔细按照官方的步骤都能配置成功的。
2.下载SDK开发包
官网根据用户需求不同可以自定义下载SDK包。点击自定义下载SDK包。建议将示例代码也一并下载下来(在以后的介绍中会用到)。
3.在android项目中引用百度SDK
1. 将开发包中的jar包和so文件添加你的工程文件中的libs文件下。
2. 在工程中将相应的jar包Build Path一下。
在AndroidManifest.xml中添加开发秘钥和所需权限
在application标签中加入,其中的AK值为你在百度地图创建应用时生成的对应AK值,一定要填写正确:
<!-- 这个权限用于进行网络定位 --> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" > </uses-permission> <!-- 这个权限用于访问GPS定位 --> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" > </uses-permission> <!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位 --> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" > </uses-permission> <!-- 获取运营商信息,用于支持提供运营商信息相关的接口 --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" > </uses-permission> <!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位 --> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" > </uses-permission> <!-- 用于读取手机当前的状态 --> <uses-permission android:name="android.permission.READ_PHONE_STATE" > </uses-permission> <!-- 写入扩展存储,向扩展卡写入数据,用于写入离线定位数据 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" > </uses-permission> <!-- 访问网络,网络定位需要上网 --> <uses-permission android:name="android.permission.INTERNET" /> <!-- SD卡读取权限,用户写入离线定位数据 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" > </uses-permission>
4. 在app_map.xml布局文件中添加地图控件:
<com.baidu.mapapi.map.MapView android:id="@+id/bmapView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" />
5完整MapActivity
import android.app.Activity; import android.os.Bundle; import com.baidu.mapapi.SDKInitializer; import com.baidu.mapapi.map.MapView; import com.yanis.yc_ui_fragment_tabhost.R.id; public class MapActivity extends Activity { private MapView mMapView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); SDKInitializer.initialize(getApplicationContext()); setContentView(R.layout.app_map); mMapView = (MapView) findViewById(R.id.bmapView); // 删除百度地图LoGo mMapView.removeViewAt(1); } @Override protected void onDestroy() { super.onDestroy(); //在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理 mMapView.onDestroy(); } @Override protected void onResume() { super.onResume(); //在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理 mMapView.onResume(); } @Override protected void onPause() { super.onPause(); //在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理 mMapView.onPause(); } }