How to detect if Google StreetView is available in

2019-03-28 12:14发布

I'm making an app that uses the Google Street View Image API

I have no problem getting an image of the street view based on the address/coordinates

but - I want to detect if the specific address has a Street View image available (in order to show a different behavior for addresses that doesn't have it)

The only idea I got so far is to read the pixels of the returned image and detect whether this is the image the I got when there is no image available

Any other idea?

Thanks!

3条回答
【Aperson】
2楼-- · 2019-03-28 12:46

Google has an api endpoint where you can look up the metadata for a panorama/streetview:

https://maps.googleapis.com/maps/api/streetview/metadata?key=YOUR_API_KEY&location=STRING_ADDRESS_OR_LAT_LNG_COORDINATES

You can check the status property of the response.

Successful Response

{
   "copyright" : "© 2017 Google",
   "date" : "2016-05",
   "location" : {
      "lat" : 48.85783227207914,
      "lng" : 2.295226175151347
   },
   "pano_id" : "tu510ie_z4ptBZYo2BGEJg",
   "status" : "OK"
}

Failed Response

{
   "status" : "ZERO_RESULTS"
}

@see https://developers.google.com/maps/documentation/streetview/metadata

查看更多
你好瞎i
3楼-- · 2019-03-28 12:54

Using google.maps.StreetViewService.getPanoramaByLocation( latlng, radius, callback()), you can check whether there is a streetview panorama. If there is a streetview panorama, then there must be an image of streetview.

You can refer the reference of google : https://developers.google.com/maps/documentation/javascript/reference#StreetViewService

Or refer to the example of StreetViewService : https://google-developers.appspot.com/maps/documentation/javascript/examples/streetview-service

查看更多
倾城 Initia
4楼-- · 2019-03-28 12:54
  mStreetViewPanorama.setOnStreetViewPanoramaChangeListener(streetViewPanoramaLocation -> {
                if (streetViewPanoramaLocation != null && streetViewPanoramaLocation.links != null) {
                    Toast.makeText(StreetViewActivity.this, "StreetView Camera Found", Toast.LENGTH_SHORT).show();
                } else {
                    Toast.makeText(StreetViewActivity.this, "StreetView Camera not Found", Toast.LENGTH_SHORT).show();
                }
            });
查看更多
登录 后发表回答