我在地图上放置了 1-12 个地标。我在计算最外面的两个点时遇到了麻烦,因此我可以缩小地图以显示所有引脚。
CLLocationDistance distLong = [zoomLocationMax.longitude getDistanceFrom:zoomLocationMin.longitude];
CLLocationDistance distLat = [zoomLocationMax.latitude getDistanceFrom:zoomLocationMin.latitude];
MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance(m_MapView.userLocation.coordinate, distLat, distLong);
MKCoordinateRegion adjustedRegion = [m_MapView regionThatFits:viewRegion];
m_MapView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
[m_MapView setRegion:adjustedRegion animated:YES];
我一直在愚弄上面的代码,但我可以预见到一些问题:
1) 前两行给了我一个 Bad receiver type 'CLLocationDegres' (aka double'} 错误。2) 我真的不希望用户位置作为中心点,理想情况下我希望有两个最远点的中心.
任何代码片段、示例或解释都会有很大帮助!!
谢谢
编辑以显示 zoomLocatin 的计算方式。我基本上采用日志和纬度并确定最小值和最大值......也不确定这是否正确:
CLLocationCoordinate2D zoomLocationMin;
CLLocationCoordinate2D zoomLocationMax;
if (coordinate.latitude < zoomLocationMin.latitude)
zoomLocationMin.latitude = coordinate.latitude;
if (coordinate.longitude < zoomLocationMin.longitude)
zoomLocationMin.longitude = coordinate.longitude;
if (coordinate.latitude > zoomLocationMax.latitude)
zoomLocationMax.latitude = coordinate.latitude;
if (coordinate.longitude > zoomLocationMax.longitude)
zoomLocationMax.longitude = coordinate.longitude;