googlePlaceAPIのplaceを使いこなす | Constant Summary | Android

スポンサーリンク
LINEで送る
Pocket

googlePlaceAPIのplace.types一覧

typeについて特に重要な項目を赤色としました。

属性意味
TYPE_ACCOUNTING1会計
TYPE_ADMINISTRATIVE_AREA_LEVEL_11001管理区域レベル1
TYPE_ADMINISTRATIVE_AREA_LEVEL_21002管理区域レベル2
TYPE_ADMINISTRATIVE_AREA_LEVEL_31003管理区域レベル3
TYPE_AIRPORT2空港
TYPE_AMUSEMENT_PARK3遊園地
TYPE_AQUARIUM4水族館
TYPE_ART_GALLERY5ギャラリー(美術館は66)
TYPE_ATM6ATM
TYPE_BAKERY7ベーカリー
TYPE_BANK8銀行
TYPE_BAR9バー
TYPE_BEAUTY_SALON10ビューティーサロン(美容院は45)
TYPE_BICYCLE_STORE11自転車店
TYPE_BOOK_STORE12本屋
TYPE_BOWLING_ALLEY13ボーリング場
TYPE_BUS_STATION14バス停
TYPE_CAFE15カフェ
TYPE_CAMPGROUND16キャンプ場
TYPE_CAR_DEALER17車ディーラー
TYPE_CAR_RENTAL18レンタカー
TYPE_CAR_REPAIR19自動車修理
TYPE_CAR_WASH20洗車
TYPE_CASINO21カジノ
TYPE_CEMETERY22墓地
TYPE_CHURCH23教会
TYPE_CITY_HALL24市役所
TYPE_CLOTHING_STORE25洋服店
TYPE_COLLOQUIAL_AREA1004??
TYPE_CONVENIENCE_STORE26コンビニ
TYPE_COUNTRY1005
TYPE_COURTHOUSE27裁判所
TYPE_DENTIST28歯科医
TYPE_DEPARTMENT_STORE29デパート
TYPE_DOCTOR30医師
TYPE_ELECTRICIAN31電気
TYPE_ELECTRONICS_STORE32電気店
TYPE_EMBASSY33大使館
TYPE_ESTABLISHMENT34確立??
TYPE_FINANCE35証券会社
TYPE_FIRE_STATION36消防署
TYPE_FLOOR1006床?
TYPE_FLORIST37花屋
TYPE_FOOD38フード
TYPE_FUNERAL_HOME39葬儀場
TYPE_FURNITURE_STORE40家具屋
TYPE_GAS_STATION41ガソリンスタンド
TYPE_GENERAL_CONTRACTOR42ゼネコン
TYPE_GEOCODE1007GEOCODE
TYPE_GROCERY_OR_SUPERMARKET43食料品またはスーパーマーケット
TYPE_GYM44ジム
TYPE_HAIR_CARE45美容院
TYPE_HARDWARE_STORE46ハードウェアストア
TYPE_HEALTH47健康施設
TYPE_HINDU_TEMPLE48ヒンドゥー教寺院
TYPE_HOME_GOODS_STORE49ホームセンターなど
TYPE_HOSPITAL50病院
TYPE_INSURANCE_AGENCY51保険代理店
TYPE_INTERSECTION1008交差点
TYPE_JEWELRY_STORE52宝石店
TYPE_LAUNDRY53ランドリー
TYPE_LAWYER54弁護士
TYPE_LIBRARY55図書館
TYPE_LIQUOR_STORE56酒屋
TYPE_LOCALITY1009地方
TYPE_LOCAL_GOVERNMENT_OFFICE57地方役所
TYPE_LOCKSMITH58錠前屋
TYPE_LODGING59宿泊施設
TYPE_MEAL_DELIVERY60食事提供
TYPE_MEAL_TAKEAWAY61食事テイクアウト
TYPE_MOSQUE62モスク
TYPE_MOVIE_RENTAL63映画レンタル
TYPE_MOVIE_THEATER64映画館
TYPE_MOVING_COMPANY65引っ越し会社
TYPE_MUSEUM66博物館
TYPE_NATURAL_FEATURE1010自然の特徴
TYPE_NEIGHBORHOOD1011近所
TYPE_NIGHT_CLUB67ナイトクラブ
TYPE_OTHER0その他
TYPE_PAINTER68ペンキ屋
TYPE_PARK69公園
TYPE_PARKING70駐車場
TYPE_PET_STORE71ペットショップ
TYPE_PHARMACY72薬局
TYPE_PHYSIOTHERAPIST73物理学者
TYPE_PLACE_OF_WORSHIP74崇拝の場
TYPE_PLUMBER75PLUMBER
TYPE_POINT_OF_INTEREST1013有名な建物など(スカイツリー、国会、高層ビルなど)
TYPE_POLICE76警察
TYPE_POLITICAL1012政治
TYPE_POSTAL_CODE1015郵便番号
TYPE_POSTAL_CODE_PREFIX1016郵便番号プレフィックス
TYPE_POSTAL_TOWN1017郵便局(郵便局は77が優先)
TYPE_POST_BOX1014郵便ポスト
TYPE_POST_OFFICE77郵便局
TYPE_PREMISE1018施設(図書館など)
TYPE_REAL_ESTATE_AGENCY78不動産会社
TYPE_RESTAURANT79レストラン
TYPE_ROOFING_CONTRACTOR80屋根業者
TYPE_ROOM1019部屋
TYPE_ROUTE1020ルート
TYPE_RV_PARK81RVパーク
TYPE_SCHOOL82学校
TYPE_SHOE_STORE83靴屋
TYPE_SHOPPING_MALL84ショッピングモール
TYPE_SPA85スパ
TYPE_STADIUM86スタジアム
TYPE_STORAGE87倉庫
TYPE_STORE88店舗
TYPE_STREET_ADDRESS1021住所
TYPE_SUBLOCALITY1022サブカルチャー
TYPE_SUBLOCALITY_LEVEL_11023サブレベル1
TYPE_SUBLOCALITY_LEVEL_21024サブレベル2
TYPE_SUBLOCALITY_LEVEL_31025サブレベル3
TYPE_SUBLOCALITY_LEVEL_41026サブレベル4
TYPE_SUBLOCALITY_LEVEL_51027サブレベル5
TYPE_SUBPREMISE1028サブ
TYPE_SUBWAY_STATION89地下鉄の駅
TYPE_SYNAGOGUE90シナゴーグ
TYPE_SYNTHETIC_GEOCODE1029シンセティックジオコード
TYPE_TAXI_STAND91タクシー乗り場
TYPE_TRAIN_STATION92鉄道駅
TYPE_TRANSIT_STATION1030駅を移動する
TYPE_TRAVEL_AGENCY93旅行会社
TYPE_UNIVERSITY94大学
TYPE_VETERINARY_CARE95獣医師のケア
TYPE_ZOO96動物園

あくまでgoogleの割り振りであって、常に正しいわけではありません。値が割り振られておらず0が返ってくる、東京ドームが教会扱いされていたりするなどの誤りもみられます。

placeのtypeの読み取り

place.getPlaceTypes()で読み取りますが、返す値はList<Integer>となります。これは複数の数値が指定されていることがあるためです。以下のように取得します

place.getPlaceTypes().get(0)

0番目の数値が最も適切である可能性が高ため、この方法による取得で問題なく使えるでしょう。

type値によって画像を切り替える

type値を取得し、その値によって画像を切り替えます。これは例えばレストラン(79)であった場合にレストランのアイコンを表示する。という使い方です。

レストランの場合は icon_79.png という画像を用意することとします。 drawableの場合はicon_79.xml 

その上で以下のように実装します。

String fileName = "icon_"+place.getPlaceTypes().get(0);
int picId = getResources().getIdentifier(fileName, "drawable", getPackageName());
imageView.setImageResource(picId);

画像を用意していないtypeについて

typeは相当な数がありますし、すべて用意してもあまり意味はありません。よって特定のタイプのみを表示し、残りは■などで表示することとします。getIdentiferを使った場合において対象画像が存在しない場合、0が返されます(int型のため)。これを利用して以下のようにします。

String fileName = "icon_" + place.getPlaceTypes().get(0);
int picId = getResources().getIdentifier(fileName, "drawable", getPackageName());
if(picId==0){
     imageView.setImageResource(R.drawable.icon_default);
}else{
     imageView.setImageResource(picId);
}

もちろん、icon_0をデフォルトにしても構いません!そっちのほうが楽か・・。

LINEで送る
Pocket

タイトルとURLをコピーしました