Archive for the Category: ArcGIS API for iOS

WKT 转AGSGeometry

只支持POINT,LINESTRING,POLYGON 三种类型 -(id)initWithWKT:(NSString*)wkt { id rtn = nil; if (self = [super init]) { NSCharacterSet *characterSet= [NSCharacterSet characterSetWithCharactersInString:@”( “]; NSScanner * scanner = [[NSScanner alloc] initWithString:wkt]; NSString * type=@””; double x,y; NSMutableArray * paths = [NSMutableArray new]; NSMutableArray * path =[NSMutableArray new]; int m=0; BOOL isFirst = NO; NSString * tType; while ([scanner isAtEnd] == […]

Leave a comment

自定义UICollection的Action

在UICollection中提供了Action的方法对UICollectionView进行处理,这些操作包括复制,删除等动作。如果想定义自己的Action,那么请参考下面的文章。 http://stackoverflow.com/questions/13458503/copy-callout-in-uicollectionview/13618212#13618212 效果图如下: 

Leave a comment

在iOS中判断图片格式是png还是jpg

在对ArcGIS Cached进行缓存的时候,由于ArcGIS Server允许使用mix方式进行缓存,所以在下载切片的时候需要判断图片的类型。 图片的类型基本为两种,png和jpg,判断的基本思路是读取图片的前四个字节,根据文件头信息进行判断,代码如下: -(int) imageType:(long) flag { int rtn = 0; //  long r = (flag^0b01000111010011100101000010001001); //JPEG File Interchange Format .jpg ff d8 ff e0 if (((flag ^0xe0ffd8ff)) ==0x00000000) { rtn = 1; } //PNG format .png 89 50 4e 47 else if (((flag^0x474e5089)) ==0x00000000) { rtn = 2; } return rtn; }

Leave a comment

在ArcGIS iOS SDK 的task访问中添加自定义refer

在GIS的系统开发中,为保证系统的安全和对用户的控制,ArcGIS Server的访问会限制用户的refer,那么在iOS SDK中如何使用带refer的请求去访问呢? 使用下面的代码即可: AGSCredential * credential = [[AGSCredential alloc] initWithToken:@”” referer:@”http://yourrefer”]; AGSQueryTask * queryTask = [[AGSQueryTask alloc] initWithURL:url credential:credential];  

Leave a comment

在iOS中获取AGSMapView的图片

在iOS中有时候会需要截取mapview当前的显示内容,用来辅助描述你的地理位置,下面的代码为截图的方法: if (NULL != UIGraphicsBeginImageContextWithOptions) UIGraphicsBeginImageContextWithOptions(self.mapView.frame.size, NO, 0); else UIGraphicsBeginImageContext(self.mapView.frame.size); CGContextRef context = UIGraphicsGetCurrentContext(); [self.mapView.layer renderInContext:context]; UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext();

Also posted in iOS, iPad, iPhone4 Leave a comment

GIS RSS reader

AppStore下载地址http://itunes.apple.com/us/app/gis-rss-reader/id551240833?ls=1&mt=8 GIS RSS reader 是一款运行在iOS设备上的RSS阅读器,该RSS阅读器集成了GIS圈内知名博客以及ArcGIS相关博客的RSS链接,让您可以快速、方便的了解GIS技术的最新动态。 用户还可以订阅自己喜欢的博客。 集成的博客列表如下: barry的后院    http://www.giser.net/?feed=rss2 菩提老王的葡萄架  http://blog.newnaw.com/?feed=rss2 add的博客  http://blog.3snews.net/rss.php?uid=39273 James Fee GIS Blog  http://spatiallyadjusted.com/atom.xml sharpGIS     http://www.sharpgis.net/syndication.axd GISpace http://blog.csdn.net/GISpace/rss/list ENVI/IDL技术殿堂  http://blog.sina.com.cn/rss/1984634525.xml ArcGIS Desktop  http://blogs.esri.com/Dev/blogs/arcgisdesktop/rss.aspx ArcGIS Server http://blogs.esri.com/Dev/blogs/arcgisserver/rss.aspx ArcGIS Mobile http://blogs.esri.com/esri/arcgis/category/mobile/feed/rss ArcGIS Online http://blogs.esri.com/Support/blogs/arcgisonline/rss.aspx rcGIS 3D http://blogs.esri.com/Dev/blogs/3dgis/rss.aspx ArcGIS开发者 http://blogs.esri.com/Dev/blogs/arcobjectsdevelopment/rss.aspx ArcGIS地理数据库 http://blogs.esri.com/Dev/blogs/geodatabase/rss.aspx ArcGIS地理处理 http://blogs.esri.com/Dev/blogs/geoprocessing/rss.aspx ArcGIS影像 http://blogs.esri.com/Dev/blogs/imagery/rss.aspx        

Also posted in ios app 2 Comments

ArcGIS runtime for iOS中自定义MarkerSymbol

在GIS 的开发中,符号是一个很重要的东西,当然99%的需求都可以使用图片来解决,但有1%的需求必须使用自定义MarkerSymbol来解决,例如天气预报中的九宫格和风向标等,要根据数据的属性去动态绘制这些符号,如果用图片的话,估计满篇都是if-else。 废话少说,在ArcGIS runtime for iOS中自定义MarkerSymbol,首先继承AGSMarkerSymbol #import “ArcGIS.h” @interface TriangleFlagMarker : AGSMarkerSymbol @end 实现 – (void)drawGraphic:(AGSGraphic*)graphic atX:(float)x y:(float)y inContext:(CGContextRef)context 和 – (CGSize) drawingSize 方法 drawingSize方法控制绘制symbol的大小 在drawGraphic方法中绘制符号 – (void)drawGraphic:(AGSGraphic*)graphic atX:(float)x y:(float)y inContext:(CGContextRef)context { NSLog(@”%f-%f”,x,y); if (graphic != nil) { NSLog(@”graphic nil”); } CGContextSetRGBFillColor(context, 0, 0, 255, 0.1); CGContextSetRGBStrokeColor(context, 0, 0, 255, 0.5); CGContextFillEllipseInRect(context, CGRectMake(x, y, 10, […]

Also posted in ArcGIS, iOS Leave a comment

在Xcode4 中将iPhone使用的xib转换成iPad使用的xib

1 以source code 的方式打开xib文件 2 将”com.apple.InterfaceBuilder3.CocoaTouch.XIB” 改为 “com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB”. 3 将 所有 “IBCocoaTouchFramework” 改为 “IBIPadFramework”. 4 修改尺寸,将类似{480, 320} 的尺寸修改为{1027, 768} 5 保存并使用Interface builder 打开 同样,这种方法也可以将iPad的xib转换成iphone使用的xib

Also posted in iOS, iPad, iPhone4 Leave a comment

在iOS中实现键盘的隐藏

在iOS开发中,经常会遇到点击UISearchbar 中的textFiled后弹出键盘,但又不想搜索,键盘无法隐藏的情况。 特别是cydia应用就是典型的代表。 下面介绍一种方法,在键盘弹出后,轻触页面隐藏键盘的方法: 1 在键盘弹出后添加对屏幕轻触事件进行监听 2 轻触页面,隐藏键盘 3 在隐藏键盘的时候移除对屏幕轻触事件的监听 代码如下: -(void) initGesture { NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; [nc addObserver:self selector:@selector(keyboardWillShow:) name: UIKeyboardWillShowNotification object:nil]; [nc addObserver:self selector:@selector(keyboardWillHide:) name: UIKeyboardWillHideNotification object:nil]; _tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapAnywhere:)]; } -(void) keyboardWillShow:(NSNotification *) note { [self.view addGestureRecognizer:_tapRecognizer]; } -(void) keyboardWillHide:(NSNotification *) note { [self.view removeGestureRecognizer:_tapRecognizer]; } -(void)didTapAnywhere: […]

Also posted in ArcGIS Leave a comment

在iOS中将string转成UTF-8编码

在iOS开发中,特别是在对Web服务调用的时候,经常会遇到请求参数为中文的情况,那么这时候就需要将Url转成UTF-8编码才能进行请求。 使用stringByAddingPercentEscapesUsingEncoding:方法可以将string转成UTF-8编码, 如下面代码 NSURL *url = [NSURL URLWithString: [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

Leave a comment