百度地图整体封装大头针-创新互联
版本迭代需要集成百度地图,产品需求是每个大头针上方都需要固定展示大头针先关的信息,而在集成过程中,如果通过百度原装方法点击大头针,弹出气泡,会出现如下几个问题:
公司主营业务:网站制作、网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联公司推出崇义免费做网站回馈大家。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://cdiso.cn/article/diipgg.html