【发布时间】:2017-03-23 14:19:23
【问题描述】:
大家好,在谷歌地图中我需要显示一个圆圈,用户可以调整它的大小、缩放和拖动它,之后我需要找到圆圈的半径和中心纬度和经度。我怎样才能做到这一点?
【问题讨论】:
标签: ios objective-c iphone google-maps google-maps-sdk-ios
大家好,在谷歌地图中我需要显示一个圆圈,用户可以调整它的大小、缩放和拖动它,之后我需要找到圆圈的半径和中心纬度和经度。我怎样才能做到这一点?
【问题讨论】:
标签: ios objective-c iphone google-maps google-maps-sdk-ios
对于Tappable GMSCircle集
googleMapCircle.tappable = true;
并且要实现可拖动的圆圈需要添加谷歌地图didTapOverlay的委托方法:
- (void)mapView: (GMSMapView*)mapView
didChangeCameraPosition: (GMSCameraPosition*)position
{
//set GMSCameraPosition to googleMapCircle position
googleMapCircle.position=position.target;
}
用于在滑块值更改时调整 GMSCircle 大小 在滑块值更改方法中添加以下代码:
- (IBAction)sliderValueChnage:(id)sender {
_slider = (UISlider*)sender;
NSLog(@"slider value = %f", _slider.value);
int radius=(int)_slider.value;
_lblRadius.text=[NSString stringWithFormat:@"%d m",radius];
//For achieve circle radius increase or decrease properly ,first clear map view
[_googleMap clear];
//Set centre coordinate where you want to draw circle
CLLocationCoordinate2D circleCenter = CLLocationCoordinate2DMake(_locationManager.location.coordinate.latitude, _locationManager.location.coordinate.longitude);
// Draw circle on google map
GMSCircle *googleMapCircle = [GMSCircle circleWithPosition:circleCenter
radius:_slider.value];
googleMapCircle.fillColor = [[UIColor purpleColor] colorWithAlphaComponent:.4f];
googleMapCircle.strokeColor = [UIColor purpleColor];
googleMapCircle.strokeWidth = 5;
googleMapCircle.tappable=YES;
googleMapCircle.map = _googleMap;
}
【讨论】: