【发布时间】:2015-03-18 11:23:43
【问题描述】:
我实际上正在处理适用于 iOS 的 Google Maps Framework,我想阻止滚动到指定区域。
我最初尝试做的是,实现委托方法:- (void)mapView:(GMSMapView *)mapView didChangeCameraPosition:(GMSCameraPosition *)position 并将地图位置与右/左角进行比较。但是我所做的在滚动或缩放时有很多问题。
下面是我的实现示例:
- (void)mapView:(GMSMapView *)mapView didChangeCameraPosition:(GMSCameraPosition *)position {
if (position.target.latitude > topLat) {
GMSCameraPosition *goBackCamera = [GMSCameraPosition cameraWithLatitude:topLat
longitude:position.target.longitude
zoom:position.zoom
bearing:220
viewingAngle:0];
[self.mapView animateToCameraPosition:goBackCamera];
}
if (position.target.latitude < bottomLat) {
GMSCameraPosition *goBackCamera = [GMSCameraPosition cameraWithLatitude:bottomLat
longitude:position.target.longitude
zoom:position.zoom
bearing:220
viewingAngle:0];
[self.mapView animateToCameraPosition:goBackCamera];
}
if (position.target.longitude > rightLong) {
GMSCameraPosition *goBackCamera = [GMSCameraPosition cameraWithLatitude:position.target.latitude
longitude:rightLong
zoom:position.zoom
bearing:220
viewingAngle:0];
[self.mapView animateToCameraPosition:goBackCamera];
}
if (position.target.longitude < leftLong) {
GMSCameraPosition *goBackCamera = [GMSCameraPosition cameraWithLatitude:position.target.latitude
longitude:leftLong
zoom:position.zoom
bearing:220
viewingAngle:0];
[self.mapView animateToCameraPosition:goBackCamera];
}
}
你没有办法更有效地处理这个问题吗?
PS: TopLat, RightLong ...表示上纬度和右经度等
问候
【问题讨论】:
标签: ios google-maps google-maps-sdk-ios