居中自定义标记GMSMapView

时间:2016-10-17 03:15:18

标签: ios objective-c google-maps

我正在尝试使用Google地图在iOS(Objective-C)中定位自定义标记。

使用标记可以很好地显示地图视图,但是,移动地图会将标记作为其获取当前位置。我正在寻找的是将它设置为地图容器的中心,然后获取地图引脚的坐标并显示在搜索栏中。

我在想我反过来这样做?我将客户标记添加为地图容器的UIImage,但它仍未显示。我应该从地图标记的位置获取位置,然后从那里反转地理编码地址。

- (void)addPins:(float)lat andLng:(float)lng andName:(NSString*)strName withAddress:(NSString*)strAddr
{
    // Creates a marker in the center of the map.
    GMSMarker *marker = [[GMSMarker alloc] init];
    marker.position = CLLocationCoordinate2DMake(currentUserLocation.coordinate.latitude, currentUserLocation.coordinate.longitude);

    NSLog(@"lat : %f, lng : %f", lat, lng);

    marker.icon = [UIImage imageNamed:@"map_pin"];
    marker.title = strName;
    marker.snippet = strAddr;
    marker.appearAnimation = kGMSMarkerAnimationPop;
    marker.map = mapView;
}

除了当前位置之外,用户还需要能够搜索和设置他们的地址。

由于

2 个答案:

答案 0 :(得分:0)

使用您的mapView委托并使用响应程序重新定位您的图钉并重新启动您的地理坐标查找。

- (void)mapView:(MKMapView *)mapView regionWillChangeAnimated:(BOOL)animated
- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated

编辑:如果GMS地图没有这些代理,则该方法可以使用他们记录的任何[mapView didUpdate]回调。

答案 1 :(得分:0)

您可以设置GMSCameraPosition以使标记居中

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:"YOUR LATITUDE"
                                                                longitude:"YOUR LONGITUDE"
                                                                     zoom:centerZoom];

"YOUT GMSMAPVIEW" = [GMSMapView mapWithFrame:"YOUR VIEW".bounds camera:camera];