Search code examples
iosobjective-cgoogle-mapsgoogle-maps-sdk-iosoverlay-view

How to show overlay info view with two button more when i click a marker on google in iOS


I am trying to show a custom overlay view from the Google Maps through the Google Maps API for iOS. This overlay view content info of marker, and two my button. But I cannot find any references for this. My desired overlay view is as image with link below:

http://i1121.photobucket.com/albums/l515/dungnlh_khtn07/NguoiMoCay/overlayinfoview_zps8110b7ed.jpg

Please give me a guide for this!


Solution

  • The best way of achieving this is to pass your GMSMapView a custom view for your info windows via the GMSMapViewDelegate's mapView:markerInfoWindow: method.

    To accomplish this, set yourself up as the delegate for your GMSMapView instance, like so:

    self.mapView.delegate = self;
    

    Then return a custom UIView when requested:

    - (UIView *)mapView:(GMSMapView *)mapView markerInfoWindow:(id<GMSMarker>)marker
    {
        UIView *customView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
        customView.backgroundColor = [UIColor redColor];
    
        return customView;
    }
    

    You can find a little more information by looking in the GMSMapView header, which states:

    /**
     * Called when a marker is about to become selected, and provides an optional
     * custom info window to use for that marker if this method returns a UIView.
     * If you change this view after this method is called, those changes will not
     * necessarily be reflected in the rendered version.
     *
     * The returned UIView must not have bounds greater than 500 points on either
     * dimension.  As there is only one info window shown at any time, the returned
     * view may be reused between other info windows.
     *
     * @return The custom info window for the specified marker, or nil for default
     */