iOS -- 百度地图画出行政区域的边界
来源:互联网 发布:禁止网络共享 编辑:程序博客网 时间:2024/05/01 11:21
- 获取某行政区域边界经纬度的集合
上边这个html文件用浏览器打开,输入地名就可以获取该地的经纬度的集合。
- 将经纬度字符串转换成json数据
获取的经纬度集合可以算作一个字符串,想办法把这个字符串变成json数据方便我们获取,这个工作要有编辑工具实现,每组经纬度是由“;”分开的,为了方便编辑,我们先在xcode工程中把“;”替换成“],[”,
打印输出的字符串复制备用,然后在Sublime text工具编辑json字符串,编辑完成后保存为json文件。
- 读取文件数据并依据数据画线
将json文件拖进xcode工程中,通过读取文件数据的方式读取该文件数据,并根据百度地图API添加折线的方法画出地图边界如下图,
在合适的地方调用方法并传入相应参数(resource:文件名称,type文件类型)
- (void)readfileForResource:(NSString*)resource ofType:(NSString*)type dictionaryKey:(NSString*)key;
注意:如果遇到区域不连接,比如河北省区域,有一块区域处于北京、天津之间,而百度地图的画折线是一笔画出来的,如果只调用一次上边方法会导致有一条额外的线,所以要单独把不连接的区域经纬度列出,分两次调用上边方法。
下边附上代码:
#pragma mark -- 画出行政区域边界- (void) drawLineOfHeibeiBianjie{ ///由于边界轨迹是一笔画出来的,但是河北省比较特殊,北京天津之间有一块没有与河北其他地方接壤,所以需要分两次画 [self readfileForResource:@"hebei" ofType:@"json" dictionaryKey:@"hebei"]; [self readfileForResource:@"longfang" ofType:@"json" dictionaryKey:@"longfang"]; }- (void)readfileForResource:(NSString *)resource ofType:(NSString *)type dictionaryKey:(NSString *)key{ NSString *jsonPath = [[NSBundle mainBundle]pathForResource:resource ofType:type]; NSData *data = [[NSData alloc]initWithContentsOfFile:jsonPath]; NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil]; NSArray *array = [dict objectForKey:key]; CLLocationCoordinate2D *coors = malloc([array count]*sizeof(CLLocationCoordinate2D)); NSInteger count = array.count; for (int i = 0; i< array.count; i ++) { coors[i].longitude = [[array[i] firstObject] doubleValue]; coors[i].latitude = [[array [i]lastObject]doubleValue]; } BMKPolyline *polyline = [BMKPolyline polylineWithCoordinates:coors count:count]; [_mapView addOverlay:polyline]; }////实现代理方法。设置画线的格式- (BMKOverlayView *)mapView:(BMKMapView *)mapView viewForOverlay:(id <BMKOverlay>)overlay{ if ([overlay isKindOfClass:[BMKPolyline class]]){ BMKPolylineView* polylineView = [[BMKPolylineView alloc] initWithOverlay:overlay]; polylineView.strokeColor = [[UIColor redColor] colorWithAlphaComponent:1]; polylineView.lineWidth = 1.0; return polylineView; } return nil;}
0 0
- iOS -- 百度地图画出行政区域的边界
- 【百度地图API】如何获取行政区域的边界? (转载)
- 【百度地图API】如何获取行政区域的边界?
- 【百度地图API】如何获取行政区域的边界?
- 【百度地图API】如何获取行政区域的边界?
- 批量获取百度地图中的县级以上行政区域的边界数据
- 百度地图不用手动描点获取行政区域边界
- 百度地图不用手动描点获取行政区域边界
- 百度地图--南京行政区域划分
- 百度地图API多行政区域划分
- 百度地图开发-----添加多个行政区域
- 如何获取行政区域的边界gps数据
- 百度地图自定义边界
- 百度地图高亮显示选中的行政区域,其余区域加遮罩
- 百度地图高亮显示选中的行政区域,其余区域加遮罩
- asp.net google地图+百度地图绘制行政区域图
- 行政区域边界提取
- 百度地图绘制行政区边界
- 2016年下半年技术规划
- $.on不起作用的原因
- 数据结构实验之栈七:出栈序列判定
- Android SearchView介绍及搜索提示实现
- 洛谷P1631 序列合并
- iOS -- 百度地图画出行政区域的边界
- 二叉树相关知识——java
- Android Studio下添加assets目录
- 多线程——简述线程间的通信
- C#入门9.10——类的继承
- <Android 初步> Handler-------内存泄漏分析
- 社会统计分析—基础知识
- SSH的jar
- VB用CDO发送邮件,报错:与服务器的传输连接失败