【问题标题】:Are user uploaded Street Views available in the Google Maps Android API v2?Google Maps Android API v2 中是否提供用户上传的街景?
【发布时间】:2023-04-08 01:26:01
【问题描述】:
我们以this location 为例。纬度/经度为 39.9477959/-75.1850599。
我可以使用 Google JS API 拉出这个街景没有问题。但是,使用这些相同的坐标和 Google Maps Android API,我得到的只是黑屏。
重现问题克隆并更改坐标here。
【问题讨论】:
标签:
google-maps
google-maps-android-api-2
google-street-view
【解决方案1】:
我认为如果您使用相同的坐标,它不会有冲突。基于此related SO question,当位置不存在时会出现黑屏。只需检查它是否已加载。
@Override
public void onStreetViewPanoramaReady(StreetViewPanorama streetViewPanorama) {
mPanorama.setOnStreetViewPanoramaChangeListener(new StreetViewPanorama.OnStreetViewPanoramaChangeListener() {
@Override
public void onStreetViewPanoramaChange(StreetViewPanoramaLocation streetViewPanoramaLocation) {
if (streetViewPanoramaLocation != null && streetViewPanoramaLocation.links != null) {
// location is present
} else {
// location not available
}
}
});
这是来自Google documentation 的example:
public class StreetViewPanoramaBasicDemoActivity extends AppCompatActivity {
// George St, Sydney
private static final LatLng SYDNEY = new LatLng(-33.87365, 151.20689);
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.street_view_panorama_basic_demo);
SupportStreetViewPanoramaFragment streetViewPanoramaFragment =
(SupportStreetViewPanoramaFragment)
getSupportFragmentManager().findFragmentById(R.id.streetviewpanorama);
streetViewPanoramaFragment.getStreetViewPanoramaAsync(
new OnStreetViewPanoramaReadyCallback() {
@Override
public void onStreetViewPanoramaReady(StreetViewPanorama panorama) {
// Only set the panorama to SYDNEY on startup (when no panoramas have been
// loaded which is when the savedInstanceState is null).
if (savedInstanceState == null) {
panorama.setPosition(SYDNEY);
}
}
});
}
}
希望这会有所帮助!
【讨论】:
-
abielita,谢谢,但问题是用户提交的纬度/经度为 39.9477959/-75.1850599 的位置在 JS API 中可用,但在 Android API 中似乎不可用。重现问题克隆并将坐标更改为 39.9477959/-75.1850599 here。