- 浏览: 2530087 次
- 性别:
- 来自: 苏州
文章分类
最新评论
-
jsntghf:
peio 写道这个怎么运行?Ruby On Rails的环境搭 ...
多文件上传之uploadify -
peio:
这个怎么运行?
多文件上传之uploadify -
往事如烟1:
我的项目是自己init了一个原始的project,之后将ver ...
React Native热部署之CodePush -
jsntghf:
往事如烟1 写道我按照你的说明进行,发现app退出之后,在进入 ...
React Native热部署之CodePush -
往事如烟1:
我按照你的说明进行,发现app退出之后,在进入不正确,请问是什 ...
React Native热部署之CodePush
首先,需要将CoreLocation.framework和MapKit.framework加入到项目中。
mapLinesViewController.h
#import <UIKit/UIKit.h> #import <MapKit/MapKit.h> #import "MapRouteLayerView.h" @interface mapLinesViewController : UIViewController { MKMapView *mapView; MapRouteLayerView *routeView; } @property(nonatomic, retain) MKMapView *mapView; @property(nonatomic, retain) MapRouteLayerView *routeView; @end
mapLinesViewController.m
#import "mapLinesViewController.h" #import <CoreLocation/CoreLocation.h> #import "MapRouteLayerView.h" @implementation mapLinesViewController @synthesize routeView; @synthesize mapView; - (void)viewDidLoad { [super viewDidLoad]; NSString *filePath = [[NSBundle mainBundle] pathForResource:@"route" ofType:@"csv"]; NSString *fileContents = [NSString stringWithContentsOfFile:filePath]; NSArray *pointStrings = [fileContents componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; NSMutableArray *points = [[NSMutableArray alloc] initWithCapacity:pointStrings.count]; for(int idx = 0; idx < pointStrings.count; idx++) { NSString *currentPointString = [pointStrings objectAtIndex:idx]; NSArray *latLonArr = [currentPointString componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@","]]; CLLocationDegrees latitude = [[latLonArr objectAtIndex:0] doubleValue]; CLLocationDegrees longitude = [[latLonArr objectAtIndex:1] doubleValue]; CLLocation *currentLocation = [[[CLLocation alloc] initWithLatitude:latitude longitude:longitude] autorelease]; [points addObject:currentLocation]; } mapView = [[MKMapView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; [self.view addSubview:mapView]; routeView = [[MapRouteLayerView alloc] initWithRoute:points mapView:mapView]; [points release]; } - (void)viewDidUnload { self.mapView = nil; self.routeView = nil; } - (void)dealloc { [mapView release]; [routeView release]; [super dealloc]; } @end
MapRouteLayerView.h
#import <Foundation/Foundation.h> #import <MapKit/MapKit.h> @interface MapRouteLayerView : UIView <MKMapViewDelegate> { MKMapView *mapView; NSArray *points; UIColor *lineColor; } @property(nonatomic, retain) NSArray *points; @property(nonatomic, retain) MKMapView *mapView; @property(nonatomic, retain) UIColor *lineColor; - (id)initWithRoute:(NSArray *)routePoints mapView:(MKMapView *)mapView; @end
MapRouteLayerView.m
#import "MapRouteLayerView.h" @implementation MapRouteLayerView @synthesize mapView; @synthesize points; @synthesize lineColor; - (id)initWithRoute:(NSArray *)routePoints mapView:(MKMapView *)mapView { self = [super initWithFrame:CGRectMake(0, 0, mapView.frame.size.width, mapView.frame.size.height)]; [self setBackgroundColor:[UIColor clearColor]]; [self setMapView:mapView]; [self setPoints:routePoints]; CLLocationDegrees maxLat = -90; CLLocationDegrees maxLon = -180; CLLocationDegrees minLat = 90; CLLocationDegrees minLon = 180; for(int idx = 0; idx < self.points.count; idx++) { CLLocation *currentLocation = [self.points objectAtIndex:idx]; if(currentLocation.coordinate.latitude > maxLat) maxLat = currentLocation.coordinate.latitude; if(currentLocation.coordinate.latitude < minLat) minLat = currentLocation.coordinate.latitude; if(currentLocation.coordinate.longitude > maxLon) maxLon = currentLocation.coordinate.longitude; if(currentLocation.coordinate.longitude < minLon) minLon = currentLocation.coordinate.longitude; } MKCoordinateRegion region; region.center.latitude = (maxLat + minLat) / 2; region.center.longitude = (maxLon + minLon) / 2; region.span.latitudeDelta = maxLat - minLat; region.span.longitudeDelta = maxLon - minLon; [self.mapView setRegion:region]; [self.mapView setDelegate:self]; [self.mapView addSubview:self]; return self; } - (void)drawRect:(CGRect)rect { if(!self.hidden && nil != self.points && self.points.count > 0) { CGContextRef context = UIGraphicsGetCurrentContext(); if(nil == self.lineColor) self.lineColor = [UIColor blueColor]; CGContextSetStrokeColorWithColor(context, self.lineColor.CGColor); CGContextSetRGBFillColor(context, 0.0, 0.0, 1.0, 1.0); CGContextSetLineWidth(context, 2.0); for(int idx = 0; idx < self.points.count; idx++) { CLLocation *location = [self.points objectAtIndex:idx]; CGPoint point = [mapView convertCoordinate:location.coordinate toPointToView:self]; if(idx == 0) { CGContextMoveToPoint(context, point.x, point.y); } else { CGContextAddLineToPoint(context, point.x, point.y); } } CGContextStrokePath(context); } } #pragma mark mapView delegate functions - (void)mapView:(MKMapView *)mapView regionWillChangeAnimated:(BOOL)animated { self.hidden = YES; } - (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated { self.hidden = NO; [self setNeedsDisplay]; } - (void) dealloc { [points release]; [mapView release]; [lineColor release]; [super dealloc]; } @end
示例图:
- route.csv.zip (2.5 KB)
- 下载次数: 17
发表评论
-
Error watching file for changes: EMFILE
2016-12-15 11:57 1299执行npm start后报错: Error watc ... -
CocoaPods升级1.1.1报错
2016-12-15 08:39 793ERROR: While executing gem .. ... -
Visual Studio Code运行React Native报错
2016-06-13 09:43 1612React Native:0.27.2 React:15 ... -
React Native 0.27.2编译报错this._nativeModule.addListener is not a function
2016-06-12 15:21 3854React Native:0.27.2 React:15 ... -
Unable to resolve module ReactDefaultPerf from
2016-06-02 13:04 2783package.json信息如下: "reac ... -
React Native 0.26.2编译报错Undefined symbols for architecture x86_64
2016-05-26 11:15 2015React Native:0.26.2 React:15. ... -
Failed to update auto layout status: Failed to load designables from path (null)
2016-04-05 22:11 1714确保CocoaPods是0.36.1以上版本,然后在podf ... -
集成微信支付出现Undefined symbols for architecture x86_64错误
2016-03-21 13:22 1751Undefined symbols for architec ... -
React Native热部署之CodePush
2016-01-10 22:27 6242本文使用的环境是Mac OS 10.11.1、Xcode ... -
浅谈React Native中的FlexBox布局
2015-11-17 18:38 4305React Native通过一个基于FlexBox的布局引 ... -
React Native之构建一个简单的列表页
2015-10-23 14:45 2161本文中我们将创建一个简单的电影应用,这个应用将从Rotten ... -
React Native之环境搭建
2015-10-20 16:30 1446本文使用的环境是Mac O ... -
获取图片属性的方法
2015-10-18 20:43 3144很多时候我们需要获 ... -
NSCache的下标用法
2015-09-18 00:19 1214NSCache类和NSDictionary类很相似,也提供 ... -
如何给category添加属性
2015-08-16 10:41 692主要是使用了runtime中的associative机制。 ... -
UITableView的两种重用Cell方法的区别
2015-08-10 13:07 16146UITableView中有两种重用Cell的方法: - ... -
SDImageCache.m报错Unused variable 'fileName'
2015-08-04 21:56 1173GCC手册中的相关解释: unused:This att ... -
Swift调用Objective-C
2015-07-13 23:33 1227Swift调用Objective-C需要一个名为<工程 ... -
使用GCD实现倒计时
2015-07-24 21:47 1084__block int timeout = 60; // ... -
导航栏加分割线的实现
2015-07-01 22:00 1763self.view.backgroundColor = [U ...
相关推荐
地图描线最新版是一款专为地图制图爱好者和专业人员设计的应用程序,它提供了高效、精确的工具来在地图上绘制线条和路径。这个“最新版”可能包含了若干改进和新功能,旨在提升用户体验和工作效率。 在地图描线的...
本主题将深入探讨“描线填充”这一概念,它在计算机图形学中占据了核心地位,特别是在2D图形渲染中。我们将使用C++编程语言和Microsoft Foundation Classes (MFC)库来实现这个功能。 描线填充是计算机图形学中的...
Photoshop描线效果操作技巧图解教程
描线时尽量贴近对象边缘,并注意软件的自动连接功能,它可以自动连接断开的线条,形成连续的曲面或封闭曲线。对于复杂的形体,可以用不同颜色的线条描绘内部结构,以便在浮雕模块中更清晰地理解高度走向。 3. 新建...
OpenCV实例程序源代码-霍夫变换描线.c
[矢量素材]日本矢量描线[花.草.动物.底纹].zip[矢量素材]日本矢量描线[花.草.动物.底纹].zip
【标题】"Windows 11 printed document-1.pdf 平板对照描线 防止漏接线" 提供的是一份与电子工程相关的技术文档,可能是关于电路设计或电子课设的作业。该文档可能包含了一种使用平板电脑进行电路连线检查的方法,以...
20170425_霍夫变换描线.c 20170426_仿射变换.c 20170426_按键实现重映射变换.c 20170426_滑条控制轮廓检测及绘制.c 20170426_简单的图像颠倒程序.c 20170426_鼠标拖动图像修复.c 20170427_凸包生成.c 20170427_用...
宝贝涂鸦软件是一款一个适合3岁以上孩子使用的涂鸦程序,功能相对简单,但是内容不算少,还有20余张精美图片可供涂色。 其他的入如章等功能一个不少。总之,Drawing 4 Kids作为来自于国外的一个小软件,是一个小而且...
主要用前期草稿、描线以及上色阶段。目前数码绘行业内比较为人熟知的各种画风都能使用SAI来绘制,比如赛璐璐、厚涂、半厚涂比较典型的上色风格。 作者:动漫绘画百科 https://www.bilibili.com/read/cv611499/ 出处...
3. FLASH 描线:FLASH 描线是 Flash 软件中的一种重要功能,通过描线可以实现动画的基本形状和结构,描线技术对动画效果的影响非常大。 4. 动作调节:动作调节是 Flash 软件中的一种重要功能,通过动作调节可以实现...
《手眼协调训练》包括画点训练、点连线训练、描线训练、连线训练、仿线训练、画线训练、综合训练、走迷宫训练、简单涂色训练、分块涂色训练、走迷宫涂色训练、情景涂色训练等方面的内容,每项内容均遵循多角度、小...
"二维动画制作流程PPT课件" 本资源为一份关于二维动画制作流程的PPT...该资源为二维动画制作流程的详细介绍,涵盖了从剧本设计到影片完成的各个阶段,提供了详细的解释和示例,非常适合动画爱好者和从业者学习和参考。
- 创建一个新的钢笔图层,然后选择曲线工具进行描线。你可以自由地添加描点,SAI会自动平滑线条,使其看起来更加流畅。如果你有绘图板,可以直接在草稿图层上新建一层勾线,降低草稿图层的透明度以辅助画线,这样更...
完成线要素后,可以按F2键结束描线,生成线要素。 **练习2:批量矢量化** 在这一部分,用户将学习编辑栅格图层,移除不必要的像元,应用矢量化设置,预览矢量化结果,并使用批量矢量化工具。批量矢量化允许用户一次...
描线可以用油漆描线或用指甲油描线。腐蚀可以用三绿化铁腐蚀液或双氧水 + 盐酸腐蚀液。钻孔时,需要先用定位钉定位,然后钻孔,注意钻孔前,一定要先用定位钉定位,以免钻孔时钻头打滑,将孔钻偏或将钻头折断。 ...
在这个过程中,他们可以模仿课件中的示例,或者尝试简单的剪纸练习,从而熟悉剪纸的基本手法。 第四部分,“想一想说一说”,引导学生思考剪纸过程中可能遇到的问题,如操作技巧、安全注意事项等,并鼓励他们相互...
20170425_霍夫变换描线.c 20170426_仿射变换.c 20170426_按键实现重映射变换.c 20170426_滑条控制轮廓检测及绘制.c 20170426_简单的图像颠倒程序.c 20170426_鼠标拖动图像修复.c 20170427_凸包生成.c 20170427_用...
如果只是简单涂鸦,可以选择默认的72分辨率。 - 分辨率的设定会影响画作的清晰度和细节表现,高分辨率适合精细绘制,低分辨率则适用于快速草图。 2. **绘制草稿**: - 在这一步,画家应快速将自己的创意和构思...