gpt4 book ai didi

ios - 如何在 GMSMapView 中显示一个圆

转载 作者:技术小花猫 更新时间:2023-10-29 10:25:55 25 4
gpt4 key购买 nike

我需要在 GMSMapView 上显示一个圆(与 MKCircle 一样)。这在使用 MKMapView 和 MKCircle 时很容易,但不能将 MKCircle 与 GMSMapView 一起使用。有任何想法吗?

更新:
这是当前(18.03.2013)选项:
1. 包含圆形图像的地面标记。
2. 由几段(折线)组成的圆。

编辑:
<强>3。 Google 添加了一个 GMSCircle (23.04.2013)

 GMSGroundOverlayOptions *overlayOptions = [GMSGroundOverlayOptions options];
overlayOptions.icon = [UIImage imageNamed:@"circle"];
overlayOptions.position = touchMapCoordinate;
overlayOptions.bearing = 0;
overlayOptions.zoomLevel = 14.3;
[mapView addGroundOverlayWithOptions:overlayOptions];

对于 40x40 像素的圆形图像,它看起来不错。 (半径约为 100 m)

小分段路径解决方案:

    GMSPolylineOptions *circle = [GMSPolylineOptions options];
CGPoint touchPoint = [mapView.projection pointForCoordinate:touchMapCoordinate];
GMSMutablePath *path = [GMSMutablePath path];

CGPoint circlePoint;

for (int i = 0; i < 360; i++)
{
circlePoint.x = touchPoint.x + radius * cos(i*M_PI/180);
circlePoint.y = touchPoint.y + radius * sin(i*M_PI/180);

CLLocationCoordinate2D aux = [mapView.projection coordinateForPoint:circlePoint];
[path addCoordinate:aux];
}

circle.path = path;
circle.width = 1;

[mapView addPolylineWithOptions:circle];

编辑:2013 年 5 月 8 日

GMSCircle 解决方案:

     CLLocationCoordinate2D circleCenter = CLLocationCoordinate2DMake(latitude, longitude);
GMSCircle *circ = [GMSCircle circleWithPosition:circleCenter
radius:1000];

circ.fillColor = [UIColor blueColor];
circ.strokeColor = [UIColor redColor];
circ.strokeWidth = 5;
circ.map = mapView;

最佳答案

这个问题已经有一年多了,所以有点晚了,但是谷歌搜索把我带到了这里,所以我想我会更新这个。后代4TW!

据我所知,现在有一个 GMSCircle 可以做 MKCircle 可以做的所有事情。
Google's documentation on the GMSCircle .

// Build a circle for the GMSMapView
GMSCircle *geoFenceCircle = [[GMSCircle alloc] init];
geoFenceCircle.radius = 130; // Meters
geoFenceCircle.position = SOME_CLLOCATION.coordinate; // Some CLLocationCoordinate2D position
geoFenceCircle.fillColor = [UIColor colorWithWhite:0.7 alpha:0.5];
geoFenceCircle.strokeWidth = 3;
geoFenceCircle.strokeColor = [UIColor orangeColor];
geoFenceCircle.map = mapView; // Add it to the map.

//为 Swift 5.3 更新代码

 let circle = GMSCircle(position: position, radius:10)
circle.fillColor = .clear
circle.strokeWidth = 3
circle.strokeColor = .black
circle.map = mapView

它的行为与 MKCircle(覆盖)非常相似,因为它会随着 map 的缩放级别等调整大小。请忽略中间的蓝色圆圈;这是 map View 上显示的用户位置,我只是使用相同的坐标作为 GMSCircle 的中心点。

super 简单。查看图片:

一个缩放级别: enter image description here

在这里,我们缩小了一点: enter image description here

关于ios - 如何在 GMSMapView 中显示一个圆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15380441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com