StreetView avoid indoor locations

C6364c3b33b6508f1f41733f57576d83?s=47 takenach
January 11, 2018

StreetView avoid indoor locations

C6364c3b33b6508f1f41733f57576d83?s=128

takenach

January 11, 2018
Tweet

Transcript

  1. StreetView avoid indoor locations 2018/01/11 shibuya.apk #21 @ctake0005  ctake0005

    / slide
  2. About me Chiharu Takenaka NAVITIME JAPAN Co.,Ltd.  ctake0005 /

    slide
  3. What I want to do Google Map 上に示した駅の外観(可能であれば 出入り口)をストリートビューで見たい! 

    ctake0005 / slide
  4. How to show StreetView (1) StreetViewPanoramaFragment をレイアウトに 追加(StreetViewPanoramaView もある) <fragment

    android:name="c.g.a.gms.maps.StreetViewPanoramaFragment" android:id="@+id/streetviewpanorama" android:layout_width="match_parent" android:layout_height="match_parent"/>  ctake0005 / slide
  5. How to show StreetView (2) OnStreetViewPanoramaReadyCallback インタ ーフェースを実装 getStreetViewPanoramaAsync() で、コールバッ

    クを設定 public class MainActivity extends FragmentActivity implements OnStreetViewPanoramaReadyCallback { ... } StreetViewPanoramaFragment streetViewPanoramaFragment = (StreetViewPanoramaFragment) getFragmentManager() .findFragmentById(R.id.streetviewpanorama); streetViewPanoramaFragment.getStreetViewPanoramaAsync(this);  ctake0005 / slide
  6. How to show StreetView (3) 準備ができたら onStreetViewPanoramaReady(StreetViewPanorama) がコールバックされるので、StreetViewPanorama に 対し、setPosition()

    を呼ぶとその位置のストリートビ ューが表示される → 簡単 ؃ @Override public void onStreetViewPanoramaReady(StreetViewPanorama panorama) { panorama.setPosition(new LatLng(-33.87365, 151.20689)); }  ctake0005 / slide
  7. Problem setPosition() した位置のストリートビューの屋外/屋 内がわからない & 指定もできない! https://issuetracker.google.com/issues/35824536  ctake0005 /

    slide
  8. Therefore 駅構内や、駅ビル内店舗のインドアビューが表 示されることが多々ある  ctake0005 / slide

  9. My Solution Google Maps Roads API > Nearest roads 指定座標から最も近い道路上の区間を返してく

    れるAPI 走行軌跡を作成したり、走行していた道路を 特定するために用意されているAPI → 駅から最も近い道路上の点を setPosition() す れば、いい感じに表示してくれるのでは?  ctake0005 / slide
  10. How to use https://roads.googleapis.com/v1/nearestRoads? points=35.5537222,139.6470025&key=[YOUR_API_KEY] { "snappedPoints": [ { "location":

    { "latitude": 35.5536442408212, "longitude": 139.64732338977774 }, "originalIndex": 0, "placeId": "ChIJX0D9BXdfGGARlGVx6mI5TQA" } ] }  ctake0005 / slide
  11. As a result 最寄りの道路上の位置が取得できるため、駅の 外観を見せることが可能になった ؁  ctake0005 / slide

  12. But... 付近に道路がない場合は、位置が返却されない ターミナル駅などでは、検索対象半径に道路 が入らないことがある 道路と地下鉄構内などが重なっている場合、道 路上の座標を指定しても屋内Viewになってしま うことがある 従量課金API (無料では 2500

    req/day)  ctake0005 / slide
  13. Conclusion アプリでストリートビューを表示することは簡 単 Roads API の Nearest roads を使用することで、 屋外が表示されやすくすることは可能

    (無料で)もっと確実な方法をご存知の方がい たら教えていただきたいです! ُ  ctake0005 / slide