imagePin.png

前回の続き:

[iPhone] Map Kitで遊ぼう:地図を出して現在位置にピンを立てる
http://blog.s21g.com/articles/1596

参考:

Drawing polyines or routes on a MKMapView (as an MKAnnotationView) – Part 2
http://spitzkoff.com/craig/?p=108

###MKAnnotationを実装するクラスを作成
MyAnnotation.h
rails>>
#import <Foundation/Foundation.h>
#import <MapKit/MapKit.h>

@interface MyAnnotation : NSObject {
CLLocationCoordinate2D _coordinate;
}

@property (nonatomic, readonly) CLLocationCoordinate2D coordinate;

-(id)initWithCoordinate:(CLLocationCoordinate2D) coordinate;

@end
<<--

MyAnnotation.m
rails>>
#import "MyAnnotation.h"

@implementation MyAnnotation

@synthesize coordinate=_coordinate;

-(id)initWithCoordinate:(CLLocationCoordinate2D) c{
_coordinate=c;
return self;
}

@end
<<--

###ViewControllerでMKMapViewDelegateを実装
ポイントとしては

  • .hでMKMapViewDelegateを実装宣言
  • _mapView.delegate = self;
  • -(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id )annotationを実装
  • MyAnnotationなら画像を設定する:
    if([annotation isKindOfClass:[MyAnnotation class]]) {
    annotationView.image = [UIImage imageNamed:@"some.png"];

本当はMKAnnotationViewを派生して、MyAnnotationViewを作るのがベターなんですけど省略しています。

MapTutorialViewController.h
rails>>
#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>

@interface MapTutorialViewController : UIViewController {
MKMapView *_mapView;
}
@end
<<--

MapTutorialViewController.m
rails>>
#pragma mark MKMapViewDelegate

  • (MKAnnotationView *)mapView:(MKMapView )mapView viewForAnnotation:(id )annotation{
    MKAnnotationView annotationView;
    NSString
    identifier = @"Pin";
    annotationView = (MKPinAnnotationView
    )[_mapView dequeueReusableAnnotationViewWithIdentifier:identifier];
    if(nil == annotationView) {
    annotationView = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:identifier] autorelease];
    }
    if([annotation isKindOfClass:[MyAnnotation class]]) {
    annotationView.image = [UIImage imageNamed:@"some.png"]; //地図に表示したい画像を設定
    }
    return annotationView;
    }

  • (void)addSomeAnnotations {
    //a location
    double latitude = 37.331688999999997;
    double longitude = -122.030731;
    CLLocationCoordinate2D _location;
    _location.latitude = latitude;
    _location.longitude = longitude;

    CLLocationCoordinate2D location1;
    MyAnnotation *annotation;

    location1.latitude = _location.latitude+0.1;
    location1.longitude = _location.longitude+0.1;
    annotation =[[MyAnnotation alloc] initWithCoordinate:location1];
    [_mapView addAnnotation:annotation];

    location1.latitude = _location.latitude+0.5;
    location1.longitude = _location.longitude+0.5;
    annotation =[[MyAnnotation alloc] initWithCoordinate:location1];
    [_mapView addAnnotation:annotation];

}

  • (void)viewDidLoad {
    [super viewDidLoad];

    _mapView = [[MKMapView alloc] initWithFrame:self.view.bounds];
    _mapView.showsUserLocation=TRUE;
    _mapView.delegate = self;
    [self.view addSubview:_mapView];

    [self addSomeAnnotations];

}

<<--

posted by satoko satoko on Wed 9 Sep 2009 at 02:22 with 0 comments
Contents rssrss
NSAssertやNSLogを無効にする:-DNS_BLOCK_ASSERTIONS=1とNS_BLOCK_ASSERTIONS
GDBでview.frameを表示させる
Core Animationについてのリンク集
[iPhone] new BSDライセンスについてライセンス引用のメモ
Implementing a Container View Controller in UIViewController Class Reference
UITableView用のNSIndexPathの作り方
Xcodeのテンプレート、View-based ApplicationとWindow-based Applicationの違い
CopyOnSelectのLion対応
Xcode4のCode Snippetsを別のPCに移動する+gitで管理する
[iPhone] Singleton: iOS4以降はGCDのdispatch_onceを使う
Tags
iphone開発gitIBInterfaceBuilderiOSSIMBLSnippetsterminaltwitterxcodeXcode4
Comments rssrss
guest guest: Muchos turistas buscan la mejor forma de llegar a ... 05/30 03:19
guest guest: San Antonio de Areco es conocido como la cuna de l... 05/27 19:47
https://rootskitchen.bar/ https://rootskitchen.bar/: Just had a solid session playing the crash format ... 05/18 17:27
guest guest: Optimizar el tiempo durante un viaje de negocios e... 05/18 00:46
https://foolsandkings.bar/ https://foolsandkings.bar/: Wrapped up a cracking night session grinding crash... 05/17 19:23
guest guest: Para muchos turistas, el transporte publico y la l... 05/15 18:22
https://safeedsautotransport.com/ https://safeedsautotransport.com/: Многие пользователи в Узбекистане интересуются, на... 05/13 14:36
evlnwyiyh evlnwyiyh: something new and exciting [url=http://www.gyxb4s... 05/08 11:27
Services from s21g
YOMU Web小説リーダー
小説投稿サイトの公式ページを開き、WebView表示と読み上げ向け表示を切り替えて、移動中や作業中にもWeb小説の続きを聴きやすくするiPhoneアプリです。
補助探
公開されている補助金・助成金情報を集約し、条件に合う制度を探しやすくするサービスです。
jotter.me
個人開発者のためのホスティング一体型ノートサービス
ハンドミラー
iPhone向けの手鏡アプリ
ツイプロ(twpro)
Twitterプロフィールの高速検索エンジン