# sdk开发者文档(Android)
## SDK简介说明
- 更新日志
- 更新说明
- 2017-01-10:发布2.3.0,一些api的更新,优化,删除了导航的naviOption类。
优化地图缓存,增加围栏信息(为了让围栏信息成功加载,加载定位的代码,需要在加载地图之后)
优化代码逻辑,修复bug
- 2017-01-10之前:初始化demo
- 更新时间表
时间|版本|备注
:---:|:---:|:---
2017-01-10|2.3.0|
- SDK javadoc
[]
- 官网
[http://indoorun.com/](http://indoorun.com/)
- 开发环境
本sdk文档是基于Android Studio开发而编写的,因此暂未提供jar包方式依赖。
- Idr类
调用SDK所有的入口包括但不限于SDK初始化、加载地图、定位、导航,都是通过Idr类调用的。
除了Idr.initSDK(Context)初始化SDK的方法和Idr.getRegionList()获取用户下面的region列表等少数方法是静态方法外,其他的方法都是实例方法。
调用实例方法均需要**获取Idr对象**
```
Idr idr = Idr.with(IdrMapView);
```
## 1、配置和初始化
### sdk植入
- **build.gradle文件配置**
```
allprojects {
repositories {
jcenter()
maven { url 'https://dl.bintray.com/yellfun/maven'}
}
}
```
- **app/build.gradle文件配置**
```
dependencies {
compile 'com.indoorun.mapapi:IndoorunSDK_Core:2.3.0' // SDK核心库
compile 'com.indoorun.mapapi:IndoorunSDK_UI:2.3.0' // UI模块库
}
```
### 开发者信息配置
- **AndroidManifest.xml文件配置**
```
<!-- 您申请的AppId-->
<meta-data
android:name="idrAppId"
android:value="******" />
<!-- 您申请的AppKey-->
<meta-data
android:name="idrAppKey"
android:value="*****************************" />
```
### sdk初始化
- **应用Application的onCreate方法里面调用**
```
Idr.initSDK(this)//必须调用此方法来初始化SDK,下面的方法均是可选的。
.needCrash()// 是否·打印崩溃log到sd卡
.setBeaconTimeSpan(1000))//设置beacon扫描时间间隔,单位ms
.setBeaconUUID(“uuid”)//设置beacon扫描过滤的UUID
.setBeaconTimeLive(4000);//设置蓝牙信号存活时间,单位ms
```
## 2、地图模块
### region相关
#### 获取region列表
```
/**
* 获取region列表,老方法,2.1.0 版本里面含有此方法,可以调用
*/
ComApi.getInstance().getRegionListOfUser()
.doOnNext(resRegionListModel -> {
})
.onErrorResumeNext(Observable.empty())
.subscribe();
/**
* 获取region列表 , 新增加的方法 在 2.1.0 里面没有。后期会加上。此方法为静态方法, 可以直接通过Idr类名调用
*/
Idr.getRegionList(regions -> {
// regions List<IdrMapRegion> 对象
}, throwable -> {
// 错误异常 ,可不传
});
```
#### 加载region
```
/**
* 加载region,根据regionId获取region信息。
* 此方法会返回一个MapLoader对象,此对象是对Map的基础操作和一些事件回调,
* MapLoader对象有包括但不限于loadFLoor()方法。
* 调用这个方法不会从网络获取region信息,只会记录regionId和设置一些回调,
* 只有在调用loadFloor()的时候,才会判断region对象是否为空。
* 如果region对象为空,才会去网络获取region信息。
*/
idr.loadRegion("xxxxx");
```
- 获取region信息
```
IdrMapRegion region = idr.getMapRegion();
```
`idr.getMapRegion()` 方法可以获取到IdrMapRegion对象,里面包含的是整个region的信息。
`IdrMapRegion`对象是在调用`loadFloor()`之后才会去网络或者缓存里面异步获取,也就是说,该方法返回的对象有可能是空的。因此,使用此对象之前,要做一下非空判断。
**IdrMapRegion**对象
region的所有信息,例如楼层信息和相应楼层的unit信息,都在这个对象里面。该对象的结构如下:
```
/**
* region对象模型
*/
public class IdrMapRegion {
private String name; //region的名字
private String cityId; //region所在的城市ID
private String regionType;
private float northDeflectionAngle; //北偏角,地理正北到地图正北的逆时针夹角,0~360
private String telephone;
private String address; //region的位置描述
private String markerUrl;
private float longitude; //region的位置的纬度信息
private float latitude; //region的位置的经度信息
private String status;
private long recordTime;
private int collectStatus; //是否已采集完成
private int checkStatus; //是否已测试通过
private String recordUser;
public String modifyUser;
public String defaultFloorId; //默认楼层,默认加载的楼层ID
public long modifyTime;
private List<IdrMapRegionFloor> floorList; //region的楼层列表
public String totalPackSize;
public String packingFee;
public String workTimes;
public String packingType;
public String description;
public List<IdrMapRegionFloorPasses> floorPassList; //贯通层数据
public String beaconUUID;
private List<IdrMapRegionFloorUnit> outerExitList;
private boolean cuserStored;
private boolean enDyGuide;
private String introduction;
private String photoUrl;
private String RegionWholeDataFileName;
private long RegionWholeDataFileSize;
private String pinyin;
}
/**
* region楼层模型
*/
public class IdrMapRegionFloor {
private String title;
private float ratio; //当前楼层的缩放率,这个影响定位层的移动速度 1个像素代表真实的X米
private String mapUrl; //从该地址下载该楼层地图的svg文件
private String mapFilePath;
private String dataImagePath;
private int dataImageSize;
private long dataImageTime;
private long modifyTime;
private List<IdrMapHeat> quyuList;
public String floorName;
public long collectModifyTime;
public long mapModifyTime;
public long unitModifyTime;
public String regionId;
public float width;
public float height;
private String modifyUser;
private String recordUser;
private long recordTime;
private ResRouteModel pathStructure;
private List<IdrMapLine> collectLineList; //采集线
List<IdrMapRegionFloorUnit> unitList; //该楼层下面的unit列表
}
/**
* region楼层的unit模型
*/
public class IdrMapRegionFloorUnit {
private String name;
private int unitTypeId; //0,自定义类型 ;1,自动扶梯 ;2,电梯;3,卫生间;4,取款机;5,出口;6,点状图标,可自定义名称;7,入口;8,安全出口;9,楼梯;10,洗车,11收银台;
private String description;
private float boundLeft;
private float boundTop;
private float boundRight;
private float boundBottom;
private String status;
private String creator;
private long gmtCreate;
private String modifier;
private long gmtModified; //格林威治标准时间(校准)
private String points;
private String detailUrl;
private boolean isShown = true;
private double lineDistance;
}
```
### 地图显示
#### 加载地图
加载地图需要用`MapLoader`对象。结合上面的加载region的方法,可以通过下面几个方法加载楼层
- 加载默认楼层
```
idr.loadRegion("xxxxxx") // 加载指定Region
.loadFloor(); // 加载默认楼层
```
- 加载指定楼层
```
idr.loadRegion("xxxxxx") // 加载指定Region
.loadFloor("xxxxxx"); // 加载指定楼层
```
- 用外部楼层切换器加载楼层
```
idr.loadRegion("xxxxxx") // 加载指定Region
.loadFloor(Loader); // 外部实现Loader接口,来实现楼层切换
```
UI模块的`SpinnerView`已经实现`Loader`接口,可以用来进行楼层切换。
- 获取当前显示楼层信息
可以通过`MapLoader`对象来获取当前楼层信息。
```
M
没有合适的资源?快使用搜索试试~ 我知道了~
Android代码-室内定位导航SDK
共60个文件
java:21个
xml:19个
png:8个
需积分: 50 22 下载量 191 浏览量
2019-08-06
04:01:47
上传
评论 4
收藏 141KB ZIP 举报
温馨提示
sdk开发者文档(Android) SDK简介说明 更新日志 更新说明 2017-01-10:发布2.3.0,一些api的更新,优化,删除了导航的naviOption类。 优化地图缓存,增加围栏信息(为了让围栏信息成功加载,加载定位的代码,需要在加载地图之后) 优化代码逻辑,修复bug 2017-01-10之前:初始化demo 更新时间表 时间 版本 备注 2017-01-10 2.3.0 SDK javadoc [] 官网 http://indoorun.com/ 开发环境 本sdk文档是基于Android Studio开发而编写的,因此暂未提供jar包方式依赖。 Idr类 调用SDK所有的入口包括但不限于SDK初始化、加载地图、定位、导航,都是通过Idr类调用的。 除了Idr.initSDK(Context)初始化SDK的方法和Idr.getRegionList()获取用户下面的region列表等少数方法是静态方法外,其他的方法都是实例方法。 调用实例方法均需要获取Idr对象 Idr idr = Idr.with
资源推荐
资源详情
资源评论
收起资源包目录
Android代码-室内定位导航SDK.zip (60个子文件)
IndoorunSDKAndroidDemo-master
.gitignore 330B
app
.gitignore 7B
build.gradle 1KB
src
androidTest
java
com
indoorun
idrdemo
ExampleInstrumentedTest.java 743B
main
AndroidManifest.xml 2KB
res
mipmap-xhdpi
back_img_actionbar.png 15KB
ic_launcher.png 5KB
mipmap-mdpi
ic_launcher.png 2KB
layout
activity_map_load_switcher.xml 773B
activity_map_load_click_unit.xml 850B
activity_location_stand.xml 1KB
activity_map_load_map_click.xml 850B
activity_map_load_ui.xml 1KB
activity_navi_base.xml 3KB
activity_navi_base_dynamic.xml 1KB
activity_map_load_click_marker.xml 875B
activity_location.xml 812B
activity_map_load_custom.xml 556B
activity_main.xml 540B
activity_base_actionbar.xml 1KB
activity_section_list.xml 519B
values-w820dp
dimens.xml 358B
mipmap-xxhdpi
start_position.png 5KB
car_position.png 6KB
ic_launcher.png 8KB
mipmap-hdpi
ic_launcher.png 3KB
mipmap-xxxhdpi
ic_launcher.png 10KB
values
strings.xml 70B
colors.xml 253B
dimens.xml 259B
styles.xml 383B
java
com
yellfun
demo
App.java 392B
ui
SectionHomeListActivity.java 916B
SectionNaviListActivity.java 832B
navigate
NaviStaticActivity.java 4KB
NaviDynamicActivity.java 2KB
BaseActivity.java 912B
BaseActionbarActivity.java 1KB
BaseSectionListActivity.java 1KB
location
LocationStandActivity.java 2KB
LocationIdrActivity.java 1KB
SectionLocationListActivity.java 848B
map
MapLoadClickMarkerActivity.java 3KB
MapLoadSwitcherActivity.java 1KB
MapLoadCustomActivity.java 1KB
MapLoadDefaultActivity.java 1KB
MapLoadClickUnitActivity.java 2KB
MapLoadClickMapActivity.java 2KB
MapLoadUIActivity.java 2KB
SectionMapListActivity.java 2KB
test
java
com
indoorun
idrdemo
ExampleUnitTest.java 394B
proguard-rules.pro 655B
settings.gradle 15B
build.gradle 682B
gradlew 5KB
README.md 25KB
gradlew.bat 2KB
gradle.properties 730B
gradle
wrapper
gradle-wrapper.properties 233B
gradle-wrapper.jar 52KB
共 60 条
- 1
资源评论
weixin_39841856
- 粉丝: 487
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功