百度地图整体封装大头针-创新互联

版本迭代需要集成百度地图,产品需求是每个大头针上方都需要固定展示大头针先关的信息,而在集成过程中,如果通过百度原装方法点击大头针,弹出气泡,会出现如下几个问题:

公司主营业务:网站制作、网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联公司推出崇义免费做网站回馈大家。

  1.可以通过[mapView selectAnnotation:annotation animated:YES]方法在初始化时显示大头针气泡,但是从方法中很容易的看到,如果添加多个大头针,多个都需要初始化展示气泡,而它只能展示最后一个添加大头针的气泡,无法实现产品的需求

  2.点击大头针,弹出气泡,点击第二个时第一个大头针的气泡会消失,归结起来就是使用气泡的方式显示大头针相关信息只会显示一条,不能同时显示多条信息

  而针对产品的需求,需要显示多条大头针信息,百度地图sdk原装方法行不通,通过查阅相关资料,可以将大头针和气泡封装成一个整体,统一当成大头针使用,并取消点击大头针弹出气泡的方法,这样有一个小问题就是会出现大头针偏移的问题,需要用户根据需要自己调整大头针显示位置,设置偏移量;而如果需要点击大头针进行相关的操作,可以通过在大头针上方添加一个button,设定tag值绑定点击事件,下面是部分代码,可以参考:

 在百度地图的代理方法中创建封装大头针

BMKAnnotationViewBMKMapViewidBMKAnnotation

ifisKindOfClassBMKPointAnnotationclass

BMKPinAnnotationViewBMKPinAnnotationViewallocinitWithAnnotationreuseIdentifier@"myAnnotation"

backgroundColorUIColorclearColor

p_w_picpathUIImagep_w_picpathNamed@"qiP.png"

frameCGRectMake703514070

userInteractionEnabledYES

enabledYES

UIViewUIViewallocinitWithFrameCGRectMake0000

paopaoViewBMKActionPaopaoViewallocinitWithCustomView

UIImageViewUIImageViewallocinit

frameCGRectMake453514035

p_w_picpathUIImagep_w_picpathNamed@"qiPao.png"

addSubview

UILabelUILabelallocinitWithFrameCGRectMake35355030

textbusNameStr

textColorUIColorwhiteColor

backgroundColorUIColorclearColor

addSubview

UILabelUILabelallocinitWithFrameCGRectMake25357030

textbustotalNum

textAlignmentNSTextAlignmentCenter

textColorUIColorcolorWithRed245.0255green153.0255blue38.0255alpha1

backgroundColorUIColorclearColor

addSubview

UIImageViewUIImageViewallocinit

frameCGRectMake005050

p_w_picpathUIImagep_w_picpathNamed@"schoolBus.png"

addSubview

    //点击事件的button

    UIButton *backgroundBtn = [UIButton :];

frameCGRectMake15107070

tagbusTag

addSubview

    [backgroundBtn :self :@selector(backgroundBtnClick:) :];

return

   ;

  创建大头针,并设置大头针的数据,必须依次添加大头针到地图上,不能整体添加

forint0selfschoolLeaderArrcount

doubleselfschoolLeaderArr@"latitude"doubleValue

doubleselfschoolLeaderArr@"longitude"doubleValue

CLLocationCoordinate2DMake

BMKPointAnnotationallocinit

coordinate

busNameStrNSStringstringWithFormat@"%@"selfschoolLeaderArr@"busName"

bustotalNumNSStringstringWithFormat@"%@/%@人"NSStringstringWithFormat@"%@"selfschoolLeaderArr@"upNum"NSStringstringWithFormat@"%@"selfschoolLeaderArr@"totalNum"

busTagselfschoolLeaderArr@"busId"intValue

selfannotationArraddObject

            创建一个大头针添加一个防止统一添加代理方法里面数据混乱

selfmapViewaddAnnotation

附件:http://down.51cto.com/data/2366532

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文名称:百度地图整体封装大头针-创新互联
网站URL:http://azwzsj.com/article/diipgg.html