在iOS平台下使用百度地图有一段时间,目前需要的功能也已实现,现在总结下在开发中遇到的问题。若朋友们也遇到相关问题,可以参照解决。
1>自定义气泡重叠后无法全部点击,POI标注点在可见区域边界时,点击覆盖物并不能看到弹出的自定义气泡。
解决方案是:百度地图自定义气泡demo.(论坛中有详细的讨论,并且demo中有仔细的说明)
2>,"Propert 'cPosition'cannot be found in forward class object "'CALayer*".。
出现这个问题的原因是:sdk5.1之前版本,uiview中CALayer没有内置cPosition属性。
解决方法是添加:#import<QuartzCore/CALayer.h>
3>执行BOOL ret = [_mapManager start:@"" generalDelegate:nil]; 时,程序异常退出(有可能会遇到这个错误)。
解决的办法是在.plist中CFBubbleName和CFBubbleDisplayName设置为系统默认值${PRODUCT_NAME},大部分情况下可以
解决此情况;有可能人品出现问题,仍然报错。这时也不用着急,我们还留了一个后招,添加应用程序本地化。在工程中添加
ProInfo.strings文件,然后在locations中为其设置为china。然后在ProInfo.strings中添加CFBubbleName="应用程序名";即可解决。
4>获取所有POI。class类库中没有直接说明如何获取所有的POI,其实在API中有做一定的说明。
附上关键代码作为印证:
- (void)onGetPoiResult:(NSArray*)poiResultList searchType:(int)type errorCode:(int)error
{
if (error == BMKErrorOk)
{
BMKPoiResult* result = [poiResultList objectAtIndex:0];
//pageIndex表示当前返回数据的当前页
//pageNum表示POI数据的总页数
if (result.pageIndex < result.pageNum)
{
for (int i = 0; i < result.poiInfoList.count; i++)
{
//获取想要显示的属性,并保存到自定义气泡中
//在地图中保存兴趣点,用于对兴趣点操作
}
result.pageIndex++; //调用附近搜索将返回下一页的数据
[_search poiSearchNearBy:m_keyword center:newLocation radius:1000 pageIndex:result.pageIndex];
}
}
}