Xamarin.iOS百度地图实现

在实际APP开发过程中,百度地图在有的项目需求中不可缺少的功能,这里我们介绍在Xamarin.IOS项目中如何实现百度地图的集成以及使用

目录

本文主要涵盖一下几个板块
1.SDK下载与应用码申请
2.百度地图注册和基本集成
3.添加地图标注

SDK下载与应用码申请

首先我们需要上百度地图开放平台下载SDK

Xamarin.iOS百度地图实现_第1张图片
百度开放平台.png

然后打开API控制中心去创建我们向百度注册我们的应用程序

Xamarin.iOS百度地图实现_第2张图片
创建应用.png

接着我们开始创建我们的应用程序,在这里我们必须设置应用程序安全码为需要集成百度地图功能的项目

Xamarin.iOS百度地图实现_第3张图片
应用名称设置.png

这样成功之后我们就可以获得相应的应用程序码用来客户端来注册百度地图信息了


百度地图注册和基本集成

首先我们需要创建一个Xamarin.iOS项目,设置项目Bundle ID为我们在百度地图开放平台注册时提交的Bundle ID

Xamarin.iOS百度地图实现_第4张图片
设置应用.png

然后进入AppDelegate.cs文件注册百度地图,添加以下代码

            #region 1.2 百度地图初始化
            BMKMapManager _mapmanager = new BMKMapManager();
            bool ret = _mapmanager.Start("qLjkFoZuId5Ul548aGgMqmELYbGNCnG5", new BMKGeneralDelegate());
            if (!ret)
            {
                System.Console.WriteLine("manager start failed");

            }
            #endregion

注意事项:

第一步:根据需要转化百度地图 .framework包,通过framework包去创建类库提供Xamarin项目使用
第二步:引入所需的系统库(-gcc_flags "-L${ProjectDir})方式去添加
第三步:引入mapapi.bundle资源文件
第四步:引入头文件,这里的头文件应该引入你在转化类库时设置的类名

然后进入跟控制器(ViewDidLoad中)设置添加百度地图,完成后救恩那个在界面上显示地图了

            BMKMapVie mapview = new BMKMapView();
            mapview.Frame = new CoreGraphics.CGRect(0, 28, 300, 272);
            mapview.AutoresizingMask = UIViewAutoresizing.All;
            this.View.AddSubview(mapview);

添加地图标注

BMKAnnotation为标注,您可以自定义标注类。百度地图SDK也预置了基本的标注点(BMKPointAnnotation)和一个大头针标注View(BMKPinAnnotationView),您可以直接使用来显示标注。

public override void ViewWillAppear(bool animated)
        {
            base.ViewWillAppear(animated);
            //设置mapview的代理,这里代理不能用this,需要自己创建一个类继承协议去重写方法
            mapview.Delegate = new viewForAnnotaion();
            //定义一个点对象
            CLLocationCoordinate2D coo = new CLLocationCoordinate2D();
            coo.Latitude = 32.63152;
            coo.Longitude = 110.785825;
            //
           BMKPointAnnotation  _annotation = new BMKPointAnnotation ();
            _annotation.Coordinate = coo;
            _annotation.Title = "东风商用车总部";
            mapview.AddAnnotation(_annotation);;
        }

        public class viewForAnnotaion : BMKMapViewDelegate
        {
            public override BMKAnnotationView MapViewViewForAnnotation(BMKMapView mapView, BMKAnnotation annotation)
            {

                if (annotation is BMKPointAnnotation)
                {
                   BMKPinAnnotationView newAnnotationView = new BMKPinAnnotationView(annotation,"myAnnotation");    
                   newAnnotationView.PinColor = BMKPinAnnotationColor.Purple;   
                   newAnnotationView.animatesDrop = true;// 设置该标注点动画显示  
                   return newAnnotationView; 
                }
                return null;
            }
        }

如果有问题,欢迎大家留言告诉我。

——End 有问题可以加我微信,大家一起讨论

你可能感兴趣的:(Xamarin.iOS百度地图实现)