首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Iphone >

iPhone使用地图开发教程

2012-07-24 
iPhone应用地图开发教程?From:?http://www.zhujiangroad.com/program/iOS/24587.html? iPhone应用地图开发

iPhone应用地图开发教程

?

From:?http://www.zhujiangroad.com/program/iOS/24587.html

?

 iPhone应用地图开发教程是本文要介绍的内容,文章讲述的是一个有趣的实例??。不多说,我们之间来看详细内容介绍??。

  1,计算两点之间的距离

  1. [locationManager?startUpdatingLocation];(已格式化成如12.34?km): ?[NSString?stringWithFormat:@"%0.2f?km",[userLocation?getDistanceFrom:location]/1000]??

  2,在处理MKAnnotationView时,都要判断对应annotation是不是MKUserLocation这个显示用户当前位置的蓝点,以避免误操作??。

  1. [annotation?isKindOfClass:[MKUserLocation?class]]??

  3、

  1. -?(MKAnnotationView?*)mapView:(MKMapView?*)mapView?viewForAnnotation:(id?<MKAnnotation>)annotation?

  这个delegate函数一般会在给MKMapView对象添加 annotations后马上执行,但执行不会马上结束??。如果在它完成之前就调用

  1. [mapView?viewForAnnotation:someAnnotation];?

  的话,会返回nil的结果,这时对这个返回的nil做任何操作都不会在屏幕上显示……

  4,MKMapView放大缩小时,需要注意的是放大,至少放大2倍以上才会被执行??。

  1. -?(IBAction)doZoomIn:(id)sender{//放大? ?????MKCoordinateRegion?region?=?mMapView.region;? ?
  2. ????regionregion.span.latitudeDelta=region.span.latitudeDelta?*?0.4;? ?????regionregion.span.longitudeDelta=region.span.longitudeDelta?*?0.4;? ?
  3. ????[mapView?setRegion:region?animated:YES];? ?}? ?
  4. -?(IBAction)doZoomOut:(id)sender{//缩小? ?????MKCoordinateRegion?region?=?mMapView.region;? ?
  5. ????regionregion.span.latitudeDelta=region.span.latitudeDelta?*?1.3;? ?????regionregion.span.longitudeDelta=region.span.longitudeDelta?*?1.3;? ?
  6. ????[mapView?setRegion:region?animated:YES];? ?}??

  5, 下面随便列一些其他没提到的代码,供搜索引擎搜索

  1. CLLocationCoordinate2D?coordinate;? ?//Location?Paris? ?
  2. coordinate.latitude?=?48.856660;? ?coordinate.longitude?=?2.350996;? ?
  3. MKCoordinateRegion?viewRegion?=?MKCoordinateRegionMakeWithDistance(coordinate,?distance,?distance);? ?MKCoordinateRegion?adjustedRegion?=?[mapView?regionThatFits:viewRegion];? ?
  4. [mapView?setRegion:adjustedRegion?animated:animated];??

  6,问 题:

  发现MKAnnotationView的Callout View有bug??。

  我在后台更新subtitle后,若不手动点一下其他 MKAnnotationView再点回之前已经显示Calloutview的MKAnnotationView的话,那这个 MKAnnotationView的Calloutview里的subtitle就不会被更新……

  说清楚点就是:点了某个大头针显示信息后,若这时后台更新了它的subtitle,然后你再点这个大头针会发现它的subtitle显示成了一个空白??。这时得点一下其他大头针,再点回来,原来那个大头针的信息才是完整的??。

  虽然有个notification是 MKAnnotationCalloutInfoDidChangeNotification,但SDK手册里说这个已经不能用了??。我尝试用了一下也没有任何效果……
不知道还有其他方法没??。

  小结:iPhone应用地图开发教程的内容介绍完了,希望本文对你有所帮助!

?

热点排行