MKMapView展示
来源:互联网 发布:磐海数据 大连 如何 编辑:程序博客网 时间:2024/05/17 07:02
MKMapView提供了一套可植入的地图接口,可以让我们在应用中展示地图,并对其进行相关的操作。一般来说,我们可以指定一个展示区域,放一些标记在上面,还可以加盖一些层在上面。
MKMapView依赖Google map里面相关服务(如Google Earth API等),所以地图的左下角会有Google字样。
使用:
1.MKMapView的显示
(1)创建MKMapView
- CGRect rect = CGRectMake(0, 0, 320, 460);
- MKMapView *mapView = [[MKMapView alloc] initWithFrame:rect];
- //定义经纬度
- CLLocationCoordinate2D theCoordinate;
- theCoordinate.latitude=22.5414; //纬度
- theCoordinate.longitude=113.946; //经度
- //定义显示范围
- MKCoordinateSpan theSpan;
- theSpan.latitudeDelta=0.01;
- theSpan.longitudeDelta=0.01;
- //定义一个区域(使用设置的经度纬度加上一个范围)
- MKCoordinateRegion theRegion;
- theRegion.center=theCoordinate;
- theRegion.span=theSpan;
- <pre name="code" class="plain"> //设置地图显示类型:
- [mapViewsetMapType:MKMapTypeStandard];
对于mapType,在MKTypes里有这样一段字典定义:
- enum {
- MKMapTypeStandard,
- MKMapTypeSatellite,
- MKMapTypeHybrid
- };
- typedef NSUInteger MKMapType;
Satellite:卫星图片区
Hybrid:卫星图,同时在相应区域有标注了街道和街道名
2.在MKMapView上添加标注
(1)和标注相关的类及协议
*MKAnnotation Protocol
标注必须实现这个协议,有三个属性,coordinate,title和subtitle,其中coordinate属性必须设置。
*MKAnnotationView
设置好Annotation后就可以用这个把标注在地图上显示出来,
-(id)initWithAnnotation:(id<MKAnnotation>)annotationreuseIdentifier:(NSString *)reuseIdentifier
其比较重要的属性有
@property(nonatomic, retain) UIImage *image
自定义在地图上标注的图片
@property(nonatomic) BOOL canShowCallout
设置点击后能否弹出标注
@property (retain,nonatomic) UIView *rightCalloutAccessoryView
property (retain,nonatomic) UIView *leftCalloutAccessoryView
设置在标注的左右边点击后进一步弹出附属的View
*MKPinAnnotationView
这是提供的大头针方式显示标注,继承自MKAnnotationView,添加了两个属性
@property(nonatomic) MKPinAnnotationColor pinColor
设置大头针的颜色,有红绿紫三种颜色可选择
@property(nonatomic) BOOL animatesDrop
设置大头针是否以掉下来的动画方式显示
(2)在地图上添加Annotation的步骤
1》创建一个实现MKAnnotation协议的类,在该类的初始化函数中给其coordinate属性设置
2》用上述方法创建Annotation
3》把创建的Annotation用addAnnotation的方法添加到MapView中
4》实现MKMapViewDelegate代理,在代理函数
- (MKAnnotationView*)mapView:(MKMapView *)mView viewForAnnotation:(id<MKAnnotation>)annotation中把Annotation变成MKAnnotationView返回,然后会在在地图上上显示。
3.在MKMapView上添加overLays
overLay是mapView的另一大功能,如annotation类似,MKMapView也维护着一个overLays的队列,overLay就是在地图上式覆盖某种形式的视图,如公交线路图,包括线路上各停靠站等,overLay必须实现协议MKOverlay,同时必须指定其形状,大小,以及在地图上的定位,与Annotation一样,它也不能独立展现在地图上,它的展示由MKOverlayView来管理(如同annotation的展示由MKAnnotationView来管理),然后使用add/insertOverlay相关的函数添加到mapView里面就可以了。
(代码稍后补上)
- MKMapView展示
- 关于MKMapView -地图展示
- 关于MKMapView -地图展示
- 关于MKMapView -地图展示
- MKMapView
- MKMapView用法
- iphone--MKMapView
- iphone MKMapView
- MKMapView 相关
- MKMapView用法
- MKMapView小结
- MKMapView小结
- MKMapView用法
- MKMapView小结
- CLLocationManager_ MKMapView
- MKMapView小结
- MKMapView小结
- iOS MKMapView
- 愤怒的小鸟开发商Rovio计划于2012年5月上市
- spring的jmsTemplate
- 查看linux下CPU详细信息命令
- link2005 错误的常见解决的方法
- note111014
- MKMapView展示
- Inno Setup 编译器编辑功能增强版 (build 110319)
- Could not execute: invalid directory (Win32 error 267)
- MyEclipse修改默认打开文件方式
- activeMQ的高级特性之messageGroup,一个队列多个消息消费者
- 关于android:configChanges="keyboardHidden|orientation"
- 通过RMAN备份恢复数据库到其他服务器!!!
- oracle case when 根据结果改变查询出来的值
- 计时器