2013-03-13 22 views
7

GMSMapViewに円を表示する必要があります(MKCircleと同様)。これは、MKMapViewとMKCircleを使用すると簡単ですが、GMSMapViewでMKCircleを使用することはできません。 アイデアGMSMapViewでサークルを表示する方法

更新:
1円形画像を含む地上マーカー:
これは現在(2013年3月18日)のオプションです。
2.いくつかのセグメント(ポリライン)で作成された円。

編集:
3. GoogleはそれがOKに見える円形画像40×40ピクセルの場合GMSCircle(2013年4月23日)

GMSGroundOverlayOptions *overlayOptions = [GMSGroundOverlayOptions options]; 
    overlayOptions.icon = [UIImage imageNamed:@"circle"]; 
    overlayOptions.position = touchMapCoordinate; 
    overlayOptions.bearing = 0; 
    overlayOptions.zoomLevel = 14.3; 
[mapView addGroundOverlayWithOptions:overlayOptions]; 

を追加しました。 (半径が約100メートルである)

小セグメント化されたパスの溶液:

GMSPolylineOptions *circle = [GMSPolylineOptions options]; 
    CGPoint touchPoint = [mapView.projection pointForCoordinate:touchMapCoordinate]; 
    GMSMutablePath *path = [GMSMutablePath path]; 

    CGPoint circlePoint; 

    for (int i = 0; i < 360; i++) 
    { 
     circlePoint.x = touchPoint.x + radius * cos(i*M_PI/180); 
     circlePoint.y = touchPoint.y + radius * sin(i*M_PI/180); 

     CLLocationCoordinate2D aux = [mapView.projection coordinateForPoint:circlePoint]; 
     [path addCoordinate:aux]; 
    } 

    circle.path = path; 
    circle.width = 1; 

    [mapView addPolylineWithOptions:circle]; 

EDIT:2013年5月8日

GMSCircle溶液:

 CLLocationCoordinate2D circleCenter = CLLocationCoordinate2DMake(latitude, longitude); 
    GMSCircle *circ = [GMSCircle circleWithPosition:circleCenter 
            radius:1000]; 

    circ.fillColor = [UIColor blueColor]; 
    circ.strokeColor = [UIColor redColor]; 
    circ.strokeWidth = 5; 
    circ.map = mapView; 
+0

は、あなたがこれまでにしようとしているものを公開することはできますか? – Noich

+0

私はどのように始めるか分かりません。 GMSGroundOverlayとGMSGroundOverlayOptionsを使用して円のアイコンを追加することを考えましたが、これは円が常に特定の半径を持つことを意味します。 – Bogus

+0

iOS 8で動作しません –

答えて

1

瞬間SDKのdoesnサークルをサポートしていませんが、ここにサークルを追加する機能リクエストがあります:

https://code.google.com/p/gmaps-api-issues/issues/detail?id=4971

それまでの間、いくつかの短いセグメントでポリラインを描くことによってサークルを偽造できましたか?

+0

アイデアのおかげで! – Bogus

7

質問が1年以上経過してから少し遅れましたが、Google検索が私をここに導いてくれたので、私はこれを更新したいと考えました。後世の4TW!

GMSCircleは、私が知る限り、MKCircleができるすべてのことを行うことができます。
Google's documentation on the GMSCircle

// Build a circle for the GMSMapView 
GMSCircle *geoFenceCircle = [[GMSCircle alloc] init]; 
geoFenceCircle.radius = 130; // Meters 
geoFenceCircle.position = SOME_CLLOCATION.coordinate; // Some CLLocationCoordinate2D position 
geoFenceCircle.fillColor = [UIColor colorWithWhite:0.7 alpha:0.5]; 
geoFenceCircle.strokeWidth = 3; 
geoFenceCircle.strokeColor = [UIColor orangeColor]; 
geoFenceCircle.map = mapView; // Add it to the map. 

それは地図のズームレベルにリサイズという点でそれは等、非常に同様MKCircle(オーバーレイ)に振る舞う中心に青い円を無視してください。これはマップビューに表示されるユーザーの場所です.GMSCircleの中心点には同じ座標を使用しました。

超簡単。画像をチェックアウト:

つのズームレベル: enter image description here

そしてここで、我々は少しズームアウトしている: enter image description here

+0

円上にテキストを描くことは可能ですか? –

+0

GMSOverlaysには、特定のマーカータイプにテキストを追加するために使用できる 'title'プロパティがあります。これであなたが望むものが得られない場合、これが過去に成功したことですが、GMSMarkerをサブクラス化して、アイコンを目的のテキストに変更することができます(イメージを作成する必要があります)それは私が思い出すように)。その後、サークルと同じ場所に配置できます(または、GMSMarkerサブクラスのメンバーとしてサークルを追加することもできます)。 https://developers.google.com/maps/documentation/ios-sdk/reference/interface_g_m_s_overlay – u2Fan

+0

ねえ、地図上でサークルを修正し、サークル内の場所を取得したい場合、ユーザーは地図を移動できますが、サークルはそのまま残ります同じ位置で助けてください?おかげで - Kuldeep @ u2Fan – dreamBegin

関連する問題