`

显示苹果地图并添加标注

 
阅读更多

 

用到的类 CLGeocoder,用来将输入的地名编码为CLPlacemark,CLPlacemark封装了一地理信息

 

上代码

 

- (void)gencodeQuery :(NSString*)place
{
    CLGeocoder *geocoder = [[CLGeocoder alloc]init];
    //对地理位置进行编码
    [geocoder geocodeAddressString:place completionHandler:^(NSArray *placemarks,NSError *error){
    
    
        for (int i = 0; i != placemarks.count; ++i)
        {
            CLPlacemark *placemark = placemarks[i];
            
            //地图进行缩放,第一个参数是中心,第二个参数是南北跨度,第三个参数是东西跨度
            MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(placemark.location.coordinate, 30000, 30000);
            [mapView setRegion:region];
            
            //在地图上添加标注,MapLocation是自定义类,实现了MKAnnotation协议
            MapLocation *annotation = [[MapLocation alloc]init];
            annotation.streetAddress = placemark.thoroughfare;
            annotation.city = placemark.locality;
            annotation.state = placemark.administrativeArea;
            annotation.zip = placemark.postalCode;
            annotation.coordinate = placemark.location.coordinate;
            //添加标注,添加后回回调MKMapViewDelegate的
            //- (MKAnnotationView*)mapView:(MKMapView *)parmMapView viewForAnnotation:(id<MKAnnotation>)annotation
            //自定义MapLocation的原因是addAnnotation接收id <MKAnnotation>参数
            [mapView addAnnotation:annotation];
            
        }
        
    }];
 
}
 
#pragma MKMapViewDelegate
 
- (MKAnnotationView*)mapView:(MKMapView *)parmMapView viewForAnnotation:(id<MKAnnotation>)annotation
{
    MKPinAnnotationView *animationView = (MKPinAnnotationView*)[parmMapView dequeueReusableAnnotationViewWithIdentifier:@"T"];
    if(animationView == nil)
        animationView = [[MKPinAnnotationView alloc]initWithAnnotation:annotation reuseIdentifier:@"T"];
    animationView.pinColor = MKPinAnnotationColorGreen;//设置标注的颜色
    animationView.animatesDrop = YES;//设置动画
    animationView.canShowCallout = YES;//显示详细信息当点击标注的时候
 
    return animationView;
 
}
 
自定义的类
@interface MapLocation : NSObject<MKAnnotation>
 
@property(nonatomic,readwrite) CLLocationCoordinate2D coordinate;
@property(nonatomic,strong) NSString *streetAddress;
@property(nonatomic,strong) NSString *city;
@property(nonatomic,strong) NSString *state;
@property(nonatomic,strong) NSString *zip;
 
@end
 
-------------
 
@implementation MapLocation
 
- (NSString*)title
{
    return@"您的位置!";
}
- (NSString*)subtitle
{
    NSString *ret = @"";
    ret = [ret stringByAppendingString:self.state];
    ret = [ret stringByAppendingString:self.city];
    return ret;
}
 
@end

 

 

分享到:
评论

相关推荐

    IOS地图定位,标注地图,获取经纬度实例

    提供的源码资源`MyMap`可能包含了实现上述功能的完整代码,包括创建`CLLocationManager`,设置地图视图,添加标注,以及处理用户交互等。通过学习和分析这个实例,开发者可以快速理解和掌握iOS地图定位和标注的相关...

    iphone上地图个性化标注

    此外,可以使用`setCenterCoordinate:animated:`方法平滑地改变地图中心点,或者使用`addAnnotations:animated:`批量添加标注并启用动画效果。 7. **性能优化** 当地图上有大量标注时,为了提高性能,可以使用...

    ios-仿苹果地图搜索滑动视图.zip

    其次,为了实现苹果地图的风格,开发者可能使用了MKMapView类,这是苹果提供的地图接口,可以显示地图、定位、添加标注等功能。地图视图可以嵌入到滚动视图中,使得用户可以滚动地图并进行放大缩小操作。 接着,...

    电脑离线地图标注软件卫星地图 免费下载

    保证没有任何功能限制 电脑离线电子地图标注软件主要功能如下:可以标注位置,可以搜索地图上本来有的位置和标注的位置,可以把某个标注的位置显示在地图中心。软件支持电脑在线下载地图后(离线)地图查看浏览, 1....

    IOS 地图开发 标注

    MapKit是iOS SDK中用于展示地图、定位用户位置以及添加标注的重要框架。它集成了Apple Maps服务,允许开发者在应用程序中集成高质量的地图体验。 1. **导入MapKit框架** 在Xcode项目中,你需要导入MapKit库才能...

    app内打开第三方地图进行导航iOS

    在iOS平台上,集成第三方地图应用,如百度、高德、腾讯和苹果地图,为用户提供导航功能,是一项常见的需求。这不仅能够丰富应用的功能,还能利用这些专业地图服务的精准定位和实时交通信息,提高用户体验。以下将...

    ios-地图标注.zip

    通过MKMapView,我们可以设置地图的显示范围、中心点、缩放级别等,并且可以添加标注。 3. **MKAnnotation**:这是一个协议,定义了地图标注的基本属性,如坐标(latitude, longitude)、标题(title)和副标题...

    04 在百度地图上定位到当前位置,并用大头针进行标注

    这篇教程将详细介绍如何在iPhone应用中实现在百度地图上显示当前位置并添加大头针标记。 首先,你需要在你的Xcode项目中引入百度地图SDK。可以通过访问百度地图开放平台(http://lbsyun.baidu.com/)注册开发者账号...

    MKMapView 同时显示多气泡

    在iOS开发中,`MKMapView` 是苹果提供的地图视图组件,用于展示地图并进行相关交互。本主题聚焦于如何在`MKMapView`上同时显示多个自定义的气泡(callouts),并通过手势来实现这一功能。这在地图应用中非常常见,...

    地图用大头针标注,定位,查看。

    "地图用大头针标注,定位,查看"这个标题所涵盖的知识点主要涉及iOS的MapKit框架,它是苹果为开发者提供的用于集成地图服务的API。下面将详细介绍如何在iOS应用中实现地图定位、大头针标注以及自定义大头针的操作。 ...

    对地图添加标记

    在这个“对地图添加标记”的项目中,我们有三个演示(demo)来详细讲解如何利用`MKMapView`实现不同类型的地图标记。 1. **默认地图标记** 默认地图标记通常是蓝色的小圆点,表示地图上的当前位置。在iOS中,我们...

    (0098)-iOS/iPhone/iPAD/iPod源代码-地图(Map)-Customized MapKit

    在iOS开发中,MapKit框架提供了强大的地图功能,允许开发者集成苹果地图到自己的应用程序中。在本主题"(0098)-iOS/iPhone/iPad/iPod源代码-地图(Map)-Customized MapKit"中,我们将探讨如何自定义地图,包括...

    swift-iOS仿链家地图找房-高德地图找房-需要自行用pod集成地图api

    通过MapKit,我们可以添加交互式地图、显示定位、添加标注、规划路线等。 4. **高德地图API**:虽然Apple提供了MapKit,但这里使用的是高德地图API,可能是因为其功能更丰富或更适合需求。高德地图API提供了多种...

    IOS史上最好用的地图控件

    例如,你可以定义一个`BaseMapView`类,包含`showMap()`方法来加载地图,`setUserLocation()`方法来获取和显示用户位置,`addAnnotation()`方法用于添加标注。然后,为百度地图和高德地图分别创建子类`BaiduMapView`...

    一个简单的地图应用

    4. **添加标注** 如果你想在地图上显示特定位置的标记,可以创建`MKPointAnnotation`对象,设置其坐标和标题,然后添加到`MKMapView`的`annotations`属性中。地图会自动显示这些标注。 5. **交互功能** MapKit...

    ios-打开自带地图、百度地图、腾讯地图.zip

    通过这个"MapDemo"项目,开发者可以学习到如何在iOS应用中集成并操作苹果、百度和腾讯三家地图服务,包括显示地图、定位、添加标注和路径规划等基本功能。了解这些技能有助于提升你的iOS开发能力,为用户提供更加...

    IOS应用源码之地图上多个指针显示(一些本地化应用或社交应用可以用得到) .rar

    2. **添加标注(Annotations)**:在地图上显示指针(即标注)通常使用MKPointAnnotation。你可以创建多个MKPointAnnotation对象,分别设置它们的坐标(latitude和longitude)和标题,然后将这些对象添加到MKMapView...

    类似苹果内置谷歌地图的翻页效果功能ios源码.rar

    MapKit是Apple提供的一种强大的工具,它允许开发者在iOS应用中嵌入地图、定位用户位置、显示标注以及执行其他地图相关的任务。该框架集成了Google Maps和Apple Maps两种服务,开发者可以根据需求选择使用。在本例中...

    swift-原生地图自定义开发demo

    3. **自定义标注(MKAnnotation)**:MapKit允许开发者创建自定义的标注视图,显示在地图上以标识特定位置。这包括实现`MKAnnotation`协议,定义坐标(coordinate)、标题(title)和副标题(subtitle)。然后,可以...

    IOS应用源码——地图上多个指针显示(一些本地化应用或社交应用可以用得到).zip

    源码的实现可能涉及到Apple的MapKit框架,该框架允许开发者在iOS应用中集成地图功能,并在地图上添加自定义的标注和视图。 首先,"ocmapview.png"可能是一个示例图片,展示了地图视图在应用中的外观,而"open_...

Global site tag (gtag.js) - Google Analytics