如何以编程方式点击ios谷歌地图标记或显示标记的信息窗口?

时间:2016-12-22 12:54:21

标签: ios objective-c google-maps gmsmapview

我正在使用带有多个标记的Google Maps iOS SDK,它会在标记点按上显示标记信息窗口。下面的代码适用于地图视图中显示的多个标记和标记。它还会在标记点击时显示标记信息窗口,并在点击时更改标记图标。

-(UIView *)mapView:(GMSMapView *)mapView markerInfoWindow:(GMSMarker *)imarker
{
    UIView *infowindow = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 90, 45)];
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 90, 45)];
    [label setFont:[UIFont fontWithName:@"TrebuchetMS-Bold" size:22]];
    infowindow.layer.cornerRadius = 5;
    infowindow.layer.borderWidth = 2;
    label.textAlignment = NSTextAlignmentCenter;
    label.text = @"Test";
    label.textColor=[UIColor greenColor];
    infowindow.backgroundColor=[UIColor whiteColor];
    [infowindow addSubview:label];
    return infowindow;    
} 

现在我想以编程方式点击标记或显示标记信息窗口。

marker = [GMSMarker markerWithPosition:position];
marker.title = @"Name";
marker.snippet = @"Test";        
[self mapView:_mapView didTapMarker:marker];
[_mapView setSelectedMarker:marker];

以上代码不适合我。它只是移动到标记的位置不显示信息窗口。有没有办法以编程方式点击标记并显示信息窗口?

1 个答案:

答案 0 :(得分:5)

为标记提供地图至关重要

对象

GMSMarker *myMarkerAutomaticSnippet = [[GMSMarker alloc] init];
marker.position = <Your cordinates>;
marker.title = @"my Title";
marker.snippet = @"my Snippet";
marker.map = myCustomMapView;


[myCustomMapView setSelectedMarker:marker];

适用于Swift 3.0

    let myMarker = GMSMarker()
    myMarker.position = CLLocationCoordinate2DMake(80.0, 80.0)
    myMarker.title = "marker title"
    myMarker.snippet = "marker snippet"
    myMarker.map = customMap // Here custom map is your GMSMapView


   customMap.customMapView.selectedMarker = myMarker // This line is important which opens the snippet