来自中心的GMSMarker图标(iOS)

我刚刚从苹果地图切换到谷歌地图。 我似乎无法find答案的一个问题是,如何让GMSMarker的图标从中心开始,而不是从图像的底部开始。

我的意思是一个例子是当前位置点图标开始集中在它表示的坐标。 但是GMSMarkers图标从图标的底部开始。

您可以使用属性groundAnchor更改标记图标的起始位置。

Google Maps SDK for iOS文档

地锚指定图标图像中锚定在地球表面标记位置的点。 此点在连续空间[0.0,1.0] x [0.0,1.0]内指定,其中(0,0)是图像的左上angular,(1,1)是右下angular。

例如

以下示例将标记旋转90°。 将groundAnchor属性设置为0.5,0.5将导致标记围绕其中心旋转,而不是其底部。

 CLLocationCoordinate2D position = CLLocationCoordinate2DMake(51.5, -0.127); CLLocationDegrees degrees = 90; GMSMarker *london = [GMSMarker markerWithPosition:position]; london.groundAnchor = CGPointMake(0.5, 0.5); london.rotation = degrees; london.map = mapView_; 

在仔细阅读Google地图文档之后,我想到了如何去做。 我相信这是如何打算完成的。

 UIImage *markerIcon = [UIImage imageNamed:@"markericon.png"]; markerIcon = [markerIcon imageWithAlignmentRectInsets:UIEdgeInsetsMake(0, 0, (markerIcon.size.height/2), 0)]; self.marker.icon = markerIcon;