// 在某个区域截图
- (UIImage)grabImageWithRect:(CGRect)rect
{
CGFloat scale = selfscale;
CGRect rectTemp = CGRectMake(rectoriginxscale, rectoriginy scale, rectsizewidth scale, rectsizeheightscale);
CGImageRef subImageRef = CGImageCreateWithImageInRect(selfCGImage, rectTemp);
CGRect smallBounds = CGRectMake(0, 0, CGImageGetWidth(subImageRef), CGImageGetHeight(subImageRef));
// UIGraphicsBeginImageContext(smallBoundssize);
UIGraphicsBeginImageContextWithOptions(smallBoundssize, NO, 0);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextDrawImage(context, smallBounds, subImageRef);
UIImage smallImage = [UIImage imageWithCGImage:subImageRef];
CFRelease(subImageRef);
UIGraphicsEndImageContext();
return smallImage;
}
你自己再额外写个方法 去计算那4个点所圈出来的区域~
/ 根据圆心的坐标点、半径、当前手势所在的坐标点,计算出圆的运动轨迹坐标 @param radius 圆心半径 @param centerCircle 圆心的坐标点 @param currentPoint 当前的手势所在的坐标点 @return CGPoint 返回圆的坐标 /+(CGPoint)CirclePoint:(CGFloat)radius withCenterCircle:(CGPoint)centerCircle withCurrentPoint:(CGPoint)currentPoint;+(CGPoint)CirclePoint:(CGFloat)radius withCenterCircle:(CGPoint)centerCircle withCurrentPoint:(CGPoint)currentPoint{ CGPoint cPoint; CGFloat x = currentPointx; CGFloat y = currentPointy; CGFloat cX ; //圆的X坐标轨迹 CGFloat cY ; //圆的Y坐标轨迹 CGFloat daX; // 圆心到转动按钮的距离的平方 //CGFloat daY; CGFloat aX; // 圆心到转动按钮的距离 //CGFloat aY; CGFloat cosX; // 圆心水平方向与转动按钮形成的夹角的cos值 //圆心与触控点的距离的平方(勾股定理) daX = (x - centerCirclex)(x - centerCirclex) + (y - centerCircley)(y - centerCircley); aX = sqrt(daX); //开根号 //圆心与触控点的距离 cosX = fabs(x - centerCirclex)/aX; //绝对值 cX = cosXradius ; // x =R cosX; 圆心到触控点在水平坐标的X的值 cY = sqrt(radiusradius - cXcX); if(x<centerCirclex) //如果X所在的点小于圆心 在圆心的左边 { cX = centerCirclex - cX; } else { cX = centerCirclex + cX; } if(y<centerCircley) { cY = centerCircley - cY; } else { cY = centerCircley + cY; } cPointx = cX; cPointy = cY; return cPoint;}
百度地图是通过移动通信基站定位来确定当前位置所在的城市。其原理就是通过测算周围基站与手机的距离来交会估算手机的空间位置。
手机定位是指通过特定的定位技术来获取移动手机或终端用户的位置信息(经纬度坐标),在电子地图上标出被定位对象的位置的技术或服务。定位技术有两种,一种是基于GPS的定位,一种是基于移动运营网的基站的定位。基于GPS的定位方式是利用手机上的GPS定位模块将自己的位置信号发送到定位后台来实现手机定位的。基站定位则是利用基站对手机的距离的测算距离来确定手机位置的。后者不需要手机具有GPS定位能力,但是精度很大程度依赖于基站的分布及覆盖范围的大小,有时误差会超过一公里。前者定位精度较高。此外还有利用Wifi在小范围内定位的方式。
- (void)longPress:(UIGestureRecognizer)gestureRecognizer {
if (gestureRecognizerstate == UIGestureRecognizerStateBegan){ //这个状态判断很重要
//坐标转换
CGPoint touchPoint = [gestureRecognizer locationInView:selfmapView];
CLLocationCoordinate2D touchMapCoordinate =
[selfmapView convertPoint:touchPoint toCoordinateFromView:selfmapView];
//这里的touchMapCoordinatelatitude和touchMapCoordinatelongitude就是你要的经纬度,
NSLog(@"%f",touchMapCoordinatelatitude);
NSLog(@"%f",touchMapCoordinatelongitude);
//30264998 120122538 30285012 120117989
LocationObject aLocationObject = [[LocationObject alloc]initWithTitle:@"hello" latitue:touchMapCoordinatelatitude longitude:touchMapCoordinatelongitude];
aLocationObject_subTitleString = @"world";
NSMutableArray _mapAnnotations = [[NSMutableArray alloc]initWithCapacity:1];
[_mapAnnotations addObject:aLocationObject];
[selfmapView addAnnotations:_mapAnnotations ];
[_mapAnnotations release];
[aLocationObject release];
}
}
在百度地图的右上角,点击“地图API”。
在地图API页面,把鼠标移动到“工具”菜单项,在下拉菜单中选择“坐标拾取工具”。
比如在搜索栏输入“百度大厦”点击搜索,就会在地图上出现相应的标记,点击你要找的某一个,就能看到相应的坐标。
同理,把找到的坐标输入到搜索栏,把后面“坐标反查”给勾上,点击搜索,就会对应的坐标打上标记,同时会有相应地址在最右边。
同时,把鼠标在地图上滑行,就可以看到,鼠标滑到每一个地方,都会对应显示坐标。
/
根据圆心的坐标点、半径、当前手势所在的坐标点,计算出圆的运动轨迹坐标
@param radius 圆心半径
@param centerCircle 圆心的坐标点
@param currentPoint 当前的手势所在的坐标点
@return CGPoint 返回圆的坐标
/
+(CGPoint)CirclePoint:(CGFloat)radius withCenterCircle:(CGPoint)centerCircle withCurrentPoint:(CGPoint)currentPoint;
+(CGPoint)CirclePoint:(CGFloat)radius withCenterCircle:(CGPoint)centerCircle withCurrentPoint:(CGPoint)currentPoint
{
CGPoint cPoint;
CGFloat x = currentPointx;
CGFloat y = currentPointy;
CGFloat cX ; //圆的X坐标轨迹
CGFloat cY ; //圆的Y坐标轨迹
CGFloat daX; // 圆心到转动按钮的距离的平方
//CGFloat daY;
CGFloat aX; // 圆心到转动按钮的距离
//CGFloat aY;
CGFloat cosX; // 圆心水平方向与转动按钮形成的夹角的cos值
//圆心与触控点的距离的平方(勾股定理)
daX = (x - centerCirclex)(x - centerCirclex) + (y - centerCircley)(y - centerCircley);
aX = sqrt(daX); //开根号 //圆心与触控点的距离
cosX = fabs(x - centerCirclex)/aX; //绝对值
cX = cosXradius ; // x =R cosX; 圆心到触控点在水平坐标的X的值
cY = sqrt(radiusradius - cXcX);
if(x<centerCirclex) //如果X所在的点小于圆心 在圆心的左边
{
cX = centerCirclex - cX;
}
else
{
cX = centerCirclex + cX;
}
if(y<centerCircley)
{
cY = centerCircley - cY;
}
else
{
cY = centerCircley + cY;
}
cPointx = cX;
cPointy = cY;
return cPoint;
}
通过Touch的相应函数来获得:
- (void)touchesBegan:(NSSet )touches withEvent:(UIEvent )event
{
UITouch touch = [touches anyObject];
CGPoint touchPoint = [touch locationInView:self];
//touchPointx ,touchPointy 就是触点的坐标。
}
看些基础的教程里基本都会讲到这个的,
以上就是关于ios uiimageview怎么获取坐标全部的内容,包括:ios uiimageview怎么获取坐标、ios cllocationmanager获取的是什么坐标、IOS 百度地图怎么根据定位获取到当前城市和省份等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)