【Android開発】Google Mapで便利なライブラリ
4 min readDec 26, 2016
最近、Google Mapを使用したアプリを作ってるのでそこで使った便利なライブラリを1つだけですが紹介します。
紹介するライブラリはこちら。Google先生製のそのなもAndroidMapsUtils。そのまま。
詳細な紹介はこちらにあるのと、ライブラリに入っているdemoを動かしたりソースコードを読んだりすると使用方法や何ができるか等わかると思います。クラスタリング(近くのをまとめる)、特定のエリアを囲む等のサンプルがあります。
今回、僕が使用したのはIconGeneratorですね。Kotlin&RxJava使って書いてます。(Rx理解が低いので間違ってるところあるかもしれません… )
override fun onMapReady(googleMap: GoogleMap) {
mMap = googleMap
// カメラ位置指定
mMap!!.moveCamera(CameraUpdateFactory.newLatLngZoom(LatLng(mCurrentLocation!!.latitude, mCurrentLocation!!.longitude), 14F))
// Restaurant一覧
Observable.from(mRestaurant)
.subscribeOn(Schedulers.newThread())
.map { r ->
// bitmap作成 by glide
val bitmap = Glide.with(this@MapsActivity)
.load(r.photos[0].url)
.asBitmap()
.centerCrop()
.into(200, 200) // 適当に200px
.get()
MapData(r, bitmap)
}
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe { data ->
// レストラン情報をマッピング
val rest = data.restaurant
// カスタムのアイコンを作成
val iconGenerator = IconGenerator(this@MapsActivity)
val imageView = ImageView(this@MapsActivity)
imageView.setImageBitmap(data.bitmap)
iconGenerator.setContentView(imageView)
val marker = mMap!!.addMarker(MarkerOptions()
.position(LatLng(rest.latitude, rest.longitude))
// カスタムのアイコンを設定
.icon(BitmapDescriptorFactory.fromBitmap(iconGenerator.makeIcon()))
.title(rest.name)
.snippet(rest.address)
.visible(true))
marker.tag = rest
}
// 自分の位置を表示
mMap!!.isMyLocationEnabled = true
}
レストランの情報から画像読み込んでアイコンとして設定しています。IconGeneratorを使う利点としては、吹き出しみたいな外枠が自動でついてくれることです。
簡単な紹介ですが以上。