3

私は iOS 用の Google Maps API を使用しています。GMSCircle をタップすると、別の場所でコーディングした小さなものがポップアップするようにしたいと考えています。サークルを「タップ可能」に設定しましたが、タップをリッスンするために設定または作成する必要があるものが見つかりません。何を使う?

    CLLocationCoordinate2D circleCenter = CLLocationCoordinate2DMake(10,10);
GMSCircle *circ = [GMSCircle circleWithPosition:circleCenter
                                         radius:10];
circ.tappable = true;
[circ setFillColor:[UIColor colorWithRed:1 green:0 blue:0 alpha:.5]];

circ.map = mapView_;
4

1 に答える 1

9

デリゲート メソッドdidTapOverlayを使用する必要があります。

- (void) mapView: (GMSMapView *) mapView  didTapOverlay: (GMSOverlay *) overlay 

ここで、パラメータ overlay は、タップされたオーバーレイを示します。したがって、それが circ に等しいかどうかを確認する必要があります。

編集: didTapOverlay 内の円を確認する方法の詳細を追加

GMSCircleをマップに追加すると、対応するもGMSPolygon作成されます。円がタップ可能として設定されている場合、それをタップすると、didTapOverlayメソッドに渡されるオーバーレイはこの関連するポリゴンであり、円ではありません。したがって、オーバーレイと円を直接比較することはできません。したがって、Raspuが指摘したように、を使用してタイトルに値を設定し、 didTapOverlay内で、と同じcirc.title =かどうかを確認できます。これが機能するのは、円の title プロパティが対応するポリゴン内にあり、オーバーレイ パラメータに存在するためです。overlay.titlecirc.title

于 2013-07-31T17:46:01.607 に答える