美文网首页xamarin开发技术
Xamarin.iOS百度地图实现

Xamarin.iOS百度地图实现

作者: Funky_Xamarin | 来源:发表于2017-04-20 11:40 被阅读525次

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

    目录

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

    SDK下载与应用码申请

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

    百度开放平台.png

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

    创建应用.png

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

    应用名称设置.png

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


    百度地图注册和基本集成

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

    设置应用.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 有问题可以加我微信,大家一起讨论

    相关文章

      网友评论

      • c6fbdd399300:这个说明还是太简单,按照官网的资料做了,出了一堆问题,不知道如何解决
      • 2e915f5d72f9:请问怎么转换百度地图 .framework包,通过framework包去创建类库呢?

      本文标题:Xamarin.iOS百度地图实现

      本文链接:https://www.haomeiwen.com/subject/nzmkzttx.html