1、按照高德地图提供的3D绘图方式来进行实现。
2、绘制地图底图。
3、设置光照。
4、设置平行光源。
5、添加Object3DLayer专门承载Object3D对象的图层。
6、搜索行政区域获取行政边界。
7、正式绘制3D图形。
如果是用removeAnimation会显得很突兀,不够平滑,所以可以利用设置动画速度和设置一个时间偏移量来暂停动画:[html]viewplaincopy//用来暂停layer上的动画-(void)pauseLayer:(CALayer*)layer{CFTimeIntervalpausedTime=[layerconvertTime:CACurrentMediaTime()fromLayer:nil]layer.speed=0.0layer.timeOffset=pausedTime}//恢复layer上的动画-(void)resumeLayer:(CALayer*)layer{CFTimeIntervalpausedTime=[layertimeOffset]layer.speed=1.0layer.timeOffset=0.0用坐标信息判断 你没说想要的具体的效果 那我就给你说一种吧 假设你地图上面有n个大头针 实际上也就是n个pointAnnotation 你可以通过_mapView.annotations直接获取到 这是个数组在点击大头针的方法里面
- (void)mapView:(BMKMapView *)mapView didSelectAnnotationView:(BMKAnnotationView *)view
{
NSArray * array = [NSArray arrayWithArray:_mapView.annotations]
for (int i=0i<array.counti++)
{
if (view.annotation.coordinate.latitude ==((BMKPointAnnotation*)array[i]).coordinate.latitude)
{
//获取到当前的大头针 你可以执行一些 *** 作
}
else
{
//对其余的大头针进行 *** 作 我是删除
//[_mapView removeAnnotation:array[i]]
}
}
}
这要再不采纳 我也就真的无语啦
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)