iphoneの標準フレームワークでは、逆ジオコーディングは用意されているが
正ジオコーディングがない。
ただ、標準MAPアプリでは、地域名検索が可能である。
何かないかな?と探していたところ[gmgeocoder]というフレームワークがありましたので、
ご紹介します。
ただし、これはネット接続が必要となりますので、ネットワーク接続していない場合は、
エラーとしてあげるなどの考慮は必要ですが、まぁまぁ使えます。
http://code.google.com/p/gmgeocoder/
ちなみに、DLするにはSubvertionが必要です。
「svn checkout http://gmgeocoder.googlecode.com/svn/trunk/」でDLできます。
基本的には、文字入力するので、SearchBarと一緒に使います。
//searchBar
if(geocoderSearchBar==nil)
{
geocoderSearchBar = [[[UISearchBar alloc] init] retain];
geocoderSearchBar.frame = CGRectMake(0, 0, self.view.bounds.size.width, 0);
geocoderSearchBar.delegate = self;
geocoderSearchBar.barStyle = UIBarStyleDefault;
geocoderSearchBar.translucent = YES;
geocoderSearchBar.showsScopeBar = YES;
geocoderSearchBar.placeholder =@"検索したい地域を入力して下さい";
[geocoderSearchBar sizeToFit];
[self.view addSubview:geocoderSearchBar];
}
//UISearchBarDelegate
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{
TRACE();
keyboradChk = YES;
[geocoderSearchBar setShowsCancelButton:YES animated:YES];
if (theGeocoder){
[theGeocoder cancel];
[theGeocoder release];
theGeocoder = nil;
}
//具体的には、下の部分がgmgeocoderの実装部分です。
theGeocoder = [[GMGeocoder alloc] initWithAddress:searchBar.text];
theGeocoder.delegate = self;
[theGeocoder start];
}
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar{
[geocoderSearchBar setShowsCancelButton:NO animated:YES];
[geocoderSearchBar resignFirstResponder];
}
上記では、ジオコーディングについて
書きましたが、iPhone&android対応する為のコーディングを
地図情報関連を中心に書いた本があります。
オススメですので、一読下さい。
0 件のコメント:
コメントを投稿