行政区检索
1.坐标检索行政区划
通过设置坐标为搜索条件,可以检索到坐标点所在的行政区划信息,实现方法如下:
(1)初始化并发起检索
// 初始化检索对象,并签订协议
FMDistrictSearch *search = [[FMDistrictSearch alloc] initWithBaseUrl:@"http://map.botaisoft.com/apis"];
search.delegate = self;
// 初始化检索条件
FMDistrictLocationSearchOption *option = [[FMDistrictLocationSearchOption alloc] init];
option.districtLocation = CLLocationCoordinate2DMake(39.915101, 116.403981);
// 发起检索
BOOL flag = [search districtSearchByLocation:option];
if (flag) {
NSLog(@"坐标检索行政区划成功");
}else
{
NSLog(@"坐标检索行政区划失败");
}
(2)在回调函数中处理数据
- (void)onGetDistrictInfoSearchResult:(FMDistrictSearch *)searcher result:(FMDistrictInfoSearchResult *)searchResult errorCode:(FMDistrictSearchErrorCode)errorCode
{
NSLog(@"检索结果");
if (errorCode == FM_DISTRICT_SEARCH_NO_ERROR) {
// 处理返回的结果数据
}
}
2.行政区编码检索行政区划
通过设置行政区编码为搜索条件,可以检索到坐标点所在的行政区划信息,实现方法如下:
(1)初始化并发起检索
// 初始化检索对象,并签订协议
FMDistrictSearch *search = [[FMDistrictSearch alloc] initWithBaseUrl:@"http://map.botaisoft.com/apis"];
search.delegate = self;
// 初始化检索条件
FMDistrictRegionSearchOption *option = [[FMDistrictRegionSearchOption alloc] init];
option.districtRegion = 110000;
// 发起检索
BOOL flag = [search districtSearchByRegion:option];
if (flag) {
NSLog(@"检索行政区划成功");
}else
{
NSLog(@"检索行政区划失败");
}
(2)在回调函数中处理数据
- (void)onGetDistrictGeoSearchResult:(FMDistrictSearch *)searcher result:(FMDistrictGeoSearchResult *)searchResult errorCode:(FMDistrictSearchErrorCode)errorCode
{
NSLog(@"检索结果");
if (errorCode == FM_DISTRICT_SEARCH_NO_ERROR) {
// 行政区属性信息
FMDistrictPropertiesInfo *preInfo = searchResult.districtProperties;
// 行政区几何体信息
FMDistrictGeometryInfo *geoInfo = searchResult.districtGeometry;
}
}
3.名称检索行政区划
通过设置行政区名称(省、市、县(区)级行政区划名称)为搜索条件,可以检索到坐标点所在的行政区划信息,实现方法如下:
(1)初始化并发起检索
// 初始化检索对象,并签订协议
FMDistrictSearch *search = [[FMDistrictSearch alloc] initWithBaseUrl:@"http://map.botaisoft.com/apis"];
search.delegate = self;
// 初始化检索条件
FMDistrictCenterSearchOption *option = [[FMDistrictCenterSearchOption alloc] init];
option.districtName = @"北京";
// 发起检索
BOOL flag = [search districtCenterSearchByName:option];
if (flag) {
NSLog(@"检索行政区划成功");
}else
{
NSLog(@"检索行政区划失败");
}
(2)在回调函数中处理数据
- (void)onGetDistrictGeoSearchResult:(FMDistrictSearch *)searcher result:(FMDistrictGeoSearchResult *)searchResult errorCode:(FMDistrictSearchErrorCode)errorCode
{
NSLog(@"检索结果");
if (errorCode == FM_DISTRICT_SEARCH_NO_ERROR) {
// 行政区属性信息
FMDistrictPropertiesInfo *preInfo = searchResult.districtProperties;
// 行政区几何体信息
FMDistrictGeometryInfo *geoInfo = searchResult.districtGeometry;
}
}
4.关键字检索行政区划
通过设置关键字为搜索条件(例:河北->返回包含河北字段的省、市、县(区)级行政区划名称),可以检索到坐标点所在的行政区划信息,实现方法如下:
(1)初始化并发起检索
// 初始化检索对象,并签订协议
FMDistrictSearch *search = [[FMDistrictSearch alloc] initWithBaseUrl:FMGL_MAP_SearchURL];
search.delegate = self;
// 初始化检索条件
FMDistrictNameSearchOption *option = [[FMDistrictNameSearchOption alloc] init];
option.districtName = @"河北";
// 发起检索
BOOL flag = [search districtBoundSearchByName:option];
if (flag) {
NSLog(@"检索行政区划成功");
}else
{
NSLog(@"检索行政区划失败");
}
(2)在回调函数中处理数据
- (void)onGetDistrictInfoSearchResult:(FMDistrictSearch *)searcher result:(FMDistrictInfoSearchResult *)searchResult errorCode:(FMDistrictSearchErrorCode)errorCode
{
NSLog(@"检索结果");
if (errorCode == FM_DISTRICT_SEARCH_NO_ERROR) {
// 处理搜索结果数据
}
}