Hello Fengmap
介绍最简单的显示Fengmap地图的Andriod应用。
添加密钥(Key)
在application中添加开发密钥:
<application>
<meta-data android:name="com.fengmap.mapapi.appkey" android:value="开发者 key" />
添加所需权限
如果FMMapSDK使用默认初始化FMMapSDK.init(),不需要读写权限,如果自定义初始化缓存目录FMMapSDK.init(this,path),需要添加读写权限,添加所需权限,示例如下:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
// 自定义缓存目录添加下面两个
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
在布局xml文件中添加地图控件
在布局xml文件中添加地图控件:
<com.fengmap.android.map.FMMapView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/mapview"/>
初始化 SDK
在应用程序创建时初始化 SDK引用的Context 全局变量,注意这个MainApplication需要在AndroidManifest.xml里注册:
public class MainApplication extends Application{
@Override
public void onCreate() {
super.onCreate();
//初始化SDK
FMMapSDK.init(this);
// 自定义缓存目录,需要申请读写权限
// FMMapSDK.init(this,path);
}
}
管理地图
地图销毁释放底层资源,注意:开发者不能在Activity的onDestory 方法里去销毁地图,原因是底层资源的销毁是异步操作,需要在GL线程里面处理,也就是销毁地图前必须保证GL线程活着,而onDestroy回调执行时并不能保证这一点,大多数情况是此时GL线程已经销毁,底层GLView释放失败,下次再打开地图会出现异常。
public class MainActivity extends Activity {
FMMap mFMMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FMMapView mapView = (FMMapView) findViewById(R.id.mapview);
mFMMap = mapView.getFMMap(); //获取地图操作对象
String bid = "10347"; //地图id
mFMMap.openMapById(bid, true); //打开地图
}
@Override
public void onBackPressed() {
if (mFMMap != null) {
mFMMap.onDestroy();
}
super.onBackPressed();
}
}