创建或打开Android Studio新项目
so支持的架构:armeabi、armeabi-v7a、x86
arcgis-android-api.jar
/armeabi
/armeabi-v7a
/x86
jackson-all-1.9.0.jar
TYMapSDK-2.x.x.jar
TYBLELocationEngine-2.x.x.jar
TYMapData.jar
单独接入定位只需:TYBLELocationEngine.jar、libTYLocationEngine.so、libsqlite3.so和TYMapData.jar
android {
//添加如下
sourceSets {
main {
jniLibs.srcDir(['libs'])
}
}
}
<com.ty.mapsdk.TYMapView
android:id="@+id/mapView"
android:layout_width="match_parent"
android:layout_height="match_parent"></com.ty.mapsdk.TYMapView>
<!-- 定位、地图更新数据 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 定位扫描beacon用 -->
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<!-- 拷贝定位、地图数据用,targetSdkVersion>=23需手动申请 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- Android6.0 后蓝牙扫描需要微定位权限,targetSdkVersion>=23需手动申请 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<application>
<!-- 定位需此服务进行蓝牙扫描 -->
<service android:name="com.ty.locationengine.ibeacon.BeaconService" />
</application>
手动权限请求示例:
private void checkPermission() {
//判断当前系统的SDK版本是否大于23
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION)
!= PackageManager.PERMISSION_GRANTED
|| ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.WRITE_EXTERNAL_STORAGE}, BLE_LOCATION_STATE);
} else {
//已有权限
onPermissionGranted();
}
}
}
//Android6.0申请权限的回调方法
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == BLE_LOCATION_STATE) {
if (grantResults.length >0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// 获取到权限
onPermissionGranted();
} else {
// 没有获取到权限,做特殊处理
}
}
}
地图所需图标文件,可以替换不能改名,其中icon_ 开头的是设施图标,可按地图所需精简(请考虑扩展,勿删占位图标icon_info)。
加载so库
static {
//地图需要
System.loadLibrary("TYMapSDK");
//定位需要
System.loadLibrary("TYLocationEngine");
}
加载地图代码
mapView = findViewById(R.id.mapView);
TYMapEnvironment.initMapEnvironment();
mapView.init("建筑ID","appkey");
mapView.setFloor("初始楼层");//B1,F1等,地图为准
mapView.addMapListener(this);
启用定位代码
locationManager = new TYLocationManager(this,"建筑ID","appkey");
locationManager.addLocationEngineListener(this);
locationManager.startUpdateLocation();
//界面onDestroy时请locationManager.stopUpdateLocation();//停止定位引擎