Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

Problem setPosition() した位置のストリートビューの屋外/屋 内がわからない & 指定もできない! https://issuetracker.google.com/issues/35824536  ctake0005 / slide

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

My Solution Google Maps Roads API > Nearest roads 指定座標から最も近い道路上の区間を返してく れるAPI 走行軌跡を作成したり、走行していた道路を 特定するために用意されているAPI → 駅から最も近い道路上の点を setPosition() す れば、いい感じに表示してくれるのでは?  ctake0005 / slide

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

As a result 最寄りの道路上の位置が取得できるため、駅の 外観を見せることが可能になった ؁  ctake0005 / slide

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

Conclusion アプリでストリートビューを表示することは簡 単 Roads API の Nearest roads を使用することで、 屋外が表示されやすくすることは可能 (無料で)もっと確実な方法をご存知の方がい たら教えていただきたいです! ُ  ctake0005 / slide