diadia

興味があることをやってみる。自分のメモを残しておきます。

GoogleMapsPlatformを使ってポリゴンを描画

コンテンツ

  1. ポリゴンを描画しての感想
  2. markerのmap描画
  3. polygonのmap描画

1. ポリゴンを描画しての感想

ポリゴンの描画に関して難しいところは無かった。 基本的にmarkerをmapに描画する要領でポリゴンデータを描画すれば良い、と捉えておけば良いだろう。

2.marker(point)のmap描画

比較対象として簡単にmarker(point)をmapに描画する方法を示す。

//まず表示したい画面にGoogleMapsのフラグメントを起動させる。
val map = SupportMapFragment.newInstance()
fragmentManager!!.beginTransaction().add(R.id.frameLayoutCrearArticulo, map).commit()

//フラグメント起動後に描画するために以下を記述する。
//これがないと onMapReadyを使えない。
map.getMapAsync(this)

//markerを描画する
override fun onMapReady(googleMap: GoogleMap) {
    val xela = LatLng(14.845833, -91.518889)
    googleMap.addMarker(MarkerOptions().position(xela))
}
marker描画の要点
  1. GoogleMapsをFragmentを起動するように起動する。
  2. marker(point)のオブジェクトをMarkerOptions()で生成する。なお、座標点を設定するメソッドとしてpositionメソッドを利用する。
  3. 生成したmarkerのオブジェクトを反映するためにGoogleMap#addMarker()メソッドを実行する。引数はmarkerのオブジェクトである。

3. polygonのmap描画

markerと同じ手続きを取ることでpolygonを描画する事ができる。

  1. GoogleMapsをFragmentを起動するように起動する。
  2. polygonのオブジェクトをPolygonOptions()で生成する。なお、polygonに含まれる座標点を設定するメソッドとしてaddメソッドを利用する。
  3. 生成したpolygonのオブジェクトを反映するためにGoogleMap#addPolygon()メソッドを実行する。引数はpolygonのオブジェクトである。
//まず表示したい画面にGoogleMapsのフラグメントを起動させる。
val map = SupportMapFragment.newInstance()
fragmentManager!!.beginTransaction().add(R.id.frameLayoutCrearArticulo, map).commit()

//フラグメント起動後に描画するために以下を記述する。
//これがないと onMapReadyを使えない。
map.getMapAsync(this)

override fun onMapReady(googleMap: GoogleMap) {
    val rectOptions = PolygonOptions()
            .add(LatLng(37.35, -122.0),
                LatLng(37.45, -122.0),
                LatLng(37.45, -122.2),
                LatLng(37.35, -122.2),
                LatLng(37.35, -122.0))
    googleMap.addPolygon(rectOptions)
}

f:id:torajirousan:20200426130725p:plain

参考資料

Shapes  |  Maps SDK for Android  |  Google Developers