SDKは現在、塗りつぶされたポリゴンをサポートしていませんが、ここにそれらを追加するための機能リクエストがあります。
https://code.google.com/p/gmaps-api-issues/issues/detail?id=5070
それまでの間、1つのオプションは、ポリゴンを画像に描画してから、それらをグラウンドオーバーレイとして追加することです。これは非常に制限的ですが、一時的な回避策として機能する可能性があります。
もう1つのオプションは、マップビューの上に別のビューを追加してポリゴンを描画し、マップビューが移動するたびにポリゴンを更新することです。別のビューをマップビューと完全に同期させることはできないため、パン/ズームするとポリゴンが少し遅れますが、これは一時的な回避策としても問題ない場合があります。
アップデート
これらは、グラウンドオーバーレイアプローチを試すためのいくつかのランダムなアイデアです。それらが機能するかどうかはわかりませんが、開始する可能性があります。
長方形の緯度/経度の角をMKMapPoint
(を使用してMKMapPointForCoordinate
)に変換することをお勧めします。これらは、ズームレベル20でのGoogleの座標系に相当します。
MKMapPoint
次に、座標内の長方形の幅/高さのアスペクト比を使用して、グラウンドオーバーレイのアスペクト比を決定できますUIImage
。アスペクト比が決まったら、実際のサイズを試して(つまり、幅を推測し、アスペクト比から高さを計算して)、問題ないように見えるサイズを見つける必要があります。長方形が大きいほど、長方形のディテールは細かくなりますが、使用するメモリが多くなり、パフォーマンスが低下する可能性があります。また、あるサイズで厳しい制限UIImage
に達する可能性があります-Google Maps SDKによってテクスチャに変換されると思います。iPhone3GS+では、テクスチャの最大サイズは2048x2048です。
次に、iOS用のGoogleマップSDKでRegionを設定する方法に似たものを使用しますか?ズームレベルと中心緯度/経度を計算します。マップビューの幅/高さの代わりに幅/高さをUIImage
使用し、目的のビューの境界の代わりに長方形の境界を使用します。また、幅と高さの両方からスケールを計算する必要はありません(スケールは同じである必要があるため)。したがって、どちらか一方を使用してください。ズームレベルと中央の緯度/経度でカメラを作成する代わりに、に設定しますGMSGroundOverlayOptions
。また、グラウンドオーバーレイanchor
を画像の中央に設定します(つまり、0.5、0.5)。
上記は、長方形ごとに1つのGroundOverlayを追加する方法を説明しています。重なり合っている長方形や近くに長方形がたくさんある場合は、それらを1つにまとめることができますがUIImage
、それは少し複雑になります。