IOSのBaidu Maps APIでは、自動的にルートやドラッグを生成するためにバブルをクリックして、カスタムバブルを開発する
IOS Baiduのマップの開発をガソリンスタンドの近くPOISearch、近くの駐車場を検索
IOS Baiduのマップの視点は、ユーザの現在位置をジャンプ
IOS Baiduのマップ開発したリアルタイム交通
IOSの開発Baiduのマップ自動ナビゲーション
バルクでのIOSの開発Baiduのマップは、テキストと画像を追加し、全体的な気泡ポップアップをクリックして釘付け
IOS開発Baiduのマップナビゲーション緯度と経度が名前なしで実現します。
効果の様々な百度マップゼロベースのインターフェイス。上記の行は、それがSEOのために、このブログは私が内部のすべての記事を解決した上記の問題、私はより多くの人が検索して取得できるようにすることですが、見ていません。:ここでの手順です
。1. アプリケーションBaiduのマップキーは。新しいキーの開口部の2013年10月開始後の2.1.0バージョン!Baiduのマップを使用するには、キーを適用する必要があり、鍵はセキュリティデスクアップルユニバーサルはあるが、あなたのプロジェクト名はあなたのキーと一致する必要があり、プロジェクトの名前が何であるかについては、それよりも、URLにhttp://lbsyun.baidu .COM / apiconsole /主要なアプリケーション、
アプリケーションID | アプリケーション名 | Accessアプリケーション(AK) | アプリケーションカテゴリ | 備考情報(変更するにはダブルクリックします) | アプリケーションの設定 |
---|---|---|---|---|---|
AKのデフォルト | AKのデフォルト |
AA1 ******** 28日
|
設定されていません | AK現在使用されているシステム | AK現在使用されているシステム |
17673 | IphoneMapSdkDemo | pytxh1exmzkAneO5Vf4K | モバイルエンド | 設定 削除 | |
17721 | MapTest | LqwUseZROjwxwb2zZ4e | モバイルエンド | 設定 削除 |
2. ダウンロードBaiduの開発キット、http://api.map.baidu.com/lbsapi/cloud/sdkiosdev-download.htm、
3建設プロジェクト。デザインのこの部分は、libとリソースファイルを追加「、それをdoinのBaiduのIOS APIの開発ガイドを参照して、その内容は2013年10月に更新されている、コンパイルに成功行うことができるようになりますそれによれば、混乱のオンラインの記事が表示されません。これらの方法は、時代遅れ間違ったことを投稿!
4. .mmへのViewController .M
5. .hファイルデリゲートでの#importを添加"BMapKit.h"を、変数BMKMapManager * _mapManagerを宣言し、追加デリゲートを.M
_ mapManager = [[BMKMapManager ALLOC ]のinit];
//あなたがgeneralDelegateパラメータ設定ネットワークおよび承認検証イベント、懸念している場合は
BOOL RET = [_mapManagerスタート: "3102732B30E0D66EF51415C9E6CE055EC78FF07E" generalDelegate @を:nilを];
IF(RET!){
のNSLog(マネージャースタートを失敗しました」@! 「);
}
6. 注ここでは、その後、私は私のiphone Baiduのマップ上で実行されているこのプログラムを実行するために始めた、あるでしょう- [UIDevice uniqueGlobalDeviceIdentifier]:認識されていないセレクタはインスタンス0x1ed19370に送られ
、このようなバグ、ソリューションの多くを、私はジューシーなように感じますダウンロードは、4つのファイルNSStringの+ MD5Additionの添加、UIDevice + IdentifierAdditionは、ヘッダファイルの導入なしになり、プロジェクトに直接添加されhttp://www.kuaipan.cn/file/id_30491149655344975.htm
7 viewController.mmで viewDidLoad次のコード
- (ボイド)のviewDidLoad
{
[スーパーのviewDidLoad];
BMKMapViewのMapView * = [[BMKMapView ALLOC] initWithFrame:CGRectMake(0、0、320、548)];
self.view =のMapView;
//ない任意通常、ペン先から、追加のビューでロードした後にセットアップ。
}
操作を保存した後、BaiduのMaps APIアプリケーションの最も簡単なの一つが完了している
ソースコードのダウンロードhttp://www.kuaipan.cn/file/id_30491149655344976.htm
Baiduのマップ機能は、ほんの少しのチョッパーパイロットの上に、非常に強力です
特長5件の検索、非常に広範な使用、この機能を使用すると、検索することができます近くのガソリンスタンドのための点座標、駐車場、ホテル、レストラン、さらにはトイレを検索することができ、非常に強力ですが、たとえば、あなたは5000メートル以内見つけたいです千メートルにあるガソリンスタンド、駐車場。
フラグ= [_search poiSearchNearBy:@ "ガソリンスタンド"センターCOOR1 RADIUS:pageIndexパラメータ5000:0];
フラグ= [_search poiSearchNearBy:@ "駐車"中心:COOR1半径:1000 pageIndexパラメータ :0];
次いで、委任- (ボイド)onGetPoiResult:(NSArrayの*)poiResultListて、searchType:(int型)のerrorCode入力します(INT)のエラー
出力を。
百度は、視点マップに切り替える点座標
- (ボイド){リージョン
CLLocationCoordinate2D COOR;
coor.latitude = self._latitude;
coor.longitude = self._longitude;
NSDictionaryの*チップ= BMKBaiduCoorForWgs84(COOR);
CLLocationCoordinate2D COOR1 = BMKCoorDictionaryDecode(ヒント);
BMKCoordinateRegion viewRegion = BMKCoordinateRegionMake(COOR1、BMKCoordinateSpanMake(0.05,0.05))。
BMKCoordinateRegion adjustedRegion = [_mapView regionThatFits:viewRegion]。
[_mapView setRegion:adjustedRegionアニメーション:YES]。
}
清除地图上所有痕迹和路线
- (ボイド)clereOldYJDH {
にNSArray *配列= [NSArrayのarrayWithArray:_mapView.annotations]。
[_mapView removeAnnotations:配列]。
アレイ= [NSArrayのarrayWithArray:_mapView.overlays]。
[_mapView removeOverlays:配列]。
[自己地域];
}
// 当选中一个注釈ビュー时、调用此接口
- (ボイド)のMapView:(BMKMapView *)のMapView didSelectAnnotationView:(BMKAnnotationView *)図
{
NSLogは(@ "ビューの注釈を選択します。%F、%fを"、view.annotation.coordinate.latitude、view.annotation.coordinate.longitudeを);
}
// 注釈ビューをオフにすると、このインターフェースを呼び出す
- (無効)のMapView:(BMKMapView *)のMapView didDeselectAnnotationView:(BMKAnnotationView *)ビュー{
のNSLog() "ビューの注釈のチェックを外し、" @;
}
// のMapView新しく追加された注釈ビュー、このインターフェースを呼び出す
- (無効)のMapView:(BMKMapView *)のMapViewのdidAddAnnotationViews:(NSArrayの*)ビュー
{
のNSLog( "MapViewの新しいビューが注釈を追加" @);
}
// あなたは注釈ビューポップアップバブルをクリックすると、このインターフェースを呼び出す
- (無効)のMapView:(BMKMapView *)のMapView annotationViewForBubble:(BMKAnnotationView *)ビュー
{
のNSLog(@ "注釈ビューポップアップバブルをクリックしてください");
}
//注釈ビュービューのドラッグ状態の変化
- (無効)のMapView:(BMKMapView *)のMapViewのannotationView:(BMKAnnotationView *)ビューdidChangeDragState:(BMKAnnotationViewDragState)newStatefromOldState:(BMKAnnotationViewDragState)oldState
{
状態ビュー(「ダイナミック注釈ビューのNSLog!変更「);
}
// マークグリーンタックパターン
((BMKPinAnnotationView *)annotationView).pinColor = BMKPinAnnotationColorGreen;
// ユーザーがドラッグできるようにする
[annotationView setDraggable:YES];
// ビューから吹き出し表示、利用可能左定義された
annotationView.leftCalloutAccessoryView = [[UIImageViewのalloc] initWithImage:[UIImage imageNamed: "icon_location.png" @]];
// ビューの右バルーン表示カスタマイズ
annotationView.rightCalloutAccessoryView = SelectButton;
//インターフェイスを入力すると、バルーンポップアップの状態にあるときにラベルをしてみましょう
[annotationViewするsetSelected:YESアニメーション:YES];
//全体のオフセットがマークされ
annotationView.centerOffset = CGPointMake(0、 - ( annotationView.frame.size.height * 0.5を));
annotationView.annotation =注釈; //は、対応する緯度と経度句読点結合
TRUE annotationView.canShowCallout =を; //風船をポップするためにクリック可能
地図カスタム注釈代替タックに、テキストやグラフィックスは、すべてに加えることができる見ることができます、タックの形で表示することができ、それがメインのコードを表示するための画像を変換する必要がある、最も重要なことは、この原則を知っている、実現するのは簡単です:(
BMKAnnotationView *)のMapView:(BMKMapView *)ビューviewForAnnotation :( ID <BMKAnnotation>)注釈
に次のコードデリゲートで実装
;のUIView * viewForImage = [CGRectMake(0、0、132、64)[UIViewのアロケーション] initWithFrame]
UIImageView * ImageViewの= [[UIImageView ALLOC] initWithFrame:CGRectMake(0 、0、32、64)]。
[ImageViewののsetImage:[UIImage imageNamed:@ "车位置の.png"]];
[viewForImage addSubview:ImageViewの]。
UILabel *ラベル= [[UILabel ALLOC] initWithFrame:CGRectMake(32、0、100、64)]。
label.text = @ "陈双超"。
label.backgroundColor = [UIColor clearColor]。
[viewForImage addSubview:ラベル];
annotationView.image = [自己getImageFromView:viewForImage]。
- (UIImage *)getImageFromView:(UIViewの*)図{
UIGraphicsBeginImageContext(view.bounds.size)。
[renderInContext view.layer:UIGraphicsGetCurrentContext()]。
UIImage *画像= UIGraphicsGetImageFromCurrentImageContext()。
UIGraphicsEndImageContext();
画像を返します。
}
バブルがタックをカスタマイズするためのファイルをビルドカスタマイズするビューと専門知識の確立に専念し、インターネット上で見つかった他の人は、そのメソッドのコードを管理しやすく、かつ非常に読みやすいと思います。学習の価値http://www.kuaipan.cn/file/id_30491149655345085.htm
{// UIViewのUIScrollViewのは、バブルのビューの本質である:@interface KYBubbleView
、NSDictionaryの* _infoDict
UILabel * titleLabel; //タイトルラベル
UILabel * detailLabel; //サブタイトルラベル
UILabel * contactLabel; //連絡先
UILabel * homeAddresslabel; //ホームアドレス
UIButton * rightButton;
NSUInteger指数;
}
の#import "BMKPointAnnotation.h"
@interfaceのKYPointAnnotation:BMKPointAnnotation {
NSUIntegerの_tag;
}
@Property NSUIntegerタグ;
@endの
部分レンダリング
1.有一个朋友问我他做导航时,传参数遇到问题,就是输入汉字部分没有,仅靠两点的经纬度怎么实现路线导航,他试了很久没弄出来。然后我把解决这个问题的源码贴出来。我做的是驾车路线,如果需要步行或者公交则需要作调整。主要涉及的方法如下,实现这个的代码,我直接从我的项目中弄出来的http://www.kuaipan.cn/file/id_30491149655345069.htm
-(void)onClickDriveSearch
{
NSLog(@"%f,%f,%f,%f",_startCoordainateXText,_startCoordainateYText,_endCoordainateXText,_endCoordainateYText);
count = 0;
isLoadingMap=2;
if(!_endCoordainateXText ||!_endCoordainateYText )isLoadingMap=1;
NSArray* array = [NSArray arrayWithArray:_mapView.annotations];
[_mapView removeAnnotations:array];
array = [NSArray arrayWithArray:_mapView.overlays];
[_mapView removeOverlays:array];
CLLocationCoordinate2D startPt = (CLLocationCoordinate2D){0, 0};
CLLocationCoordinate2D endPt = (CLLocationCoordinate2D){0, 0};
if (_startCoordainateXText && _startCoordainateYText ) {
startPt = (CLLocationCoordinate2D){_startCoordainateYText ,_startCoordainateXText };
}
if (_endCoordainateYText && _endCoordainateXText ) {
endPt = (CLLocationCoordinate2D){ _endCoordainateYText ,_endCoordainateXText};
}
BMKPlanNode* start = [[BMKPlanNode alloc]init];
start.pt = startPt;
start.name = nil;
BMKPlanNode* end = [[BMKPlanNode alloc]init];
end.pt = endPt;
end.name = nil;
BOOLフラグ= [_search drivingSearch:startNodeゼロ:ゼロのエンドノード:endCity開始端を]。
(!フラグ){場合
のNSLog( "検索に失敗しました" @)。
}
[解除を開始します]。
【端リリース]。
[自己地域];
}
ます。https://www.cnblogs.com/haibosoft/p/3842794.htmlで再現