2016-10-17 8 views
0

GoogleマップでiOS(Objective-C)にカスタムマーカーを配置しようとしています。カスタムマーカーのセンタリングGMSMapView

マップビューはすべてマーカーで表示されていますが、地図を移動するとそのマーカーが取り込みの現在の場所として使用されます。私が探しているのは地図コンテナの中心にセットしたもので、マップバーの座標を検索バーに表示します。

私はこれを逆にしていると思いますか?私はマップコンテナの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; 
} 

ユーザは、自分の現在地以外に住所を検索して設定する必要があります。

おかげ

+0

私の答えをセンタリングするためGMSCameraPositionを設定することができますが、あなたを助けたかどうか? –

答えて

0

は、あなたのMapViewのデリゲートを使用して再センターあなたのピンと再発射あなたの地理座標参照に応答を使用しています。

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

編集:GMSマップはこれらのデリゲートを持っていない場合は、アプローチは、彼らが文書化されているものは何でも[mapView didUpdate]コールバック使用して動作する可能性があります。

0

あなたのマーカー

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

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

うーん、UIImageは現在の場所にしか表示されていません。マップコンテナの上にイメージ "map_pin"を使用するのが最善でしょうか?そうすれば、ユーザーは住所を設定することを許可されません。 – user1668410

+0

あなたのアプリケーションが実行されると、マーカーピンが表示されます。この後、ピンをどこにでも配置してピンを設定したり、マーカー位置をドラッグするためにDraggableannotationviewを使用したりすることができます –

関連する問題