首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何查看位置是否提供街景

如何查看位置是否提供街景
EN

Stack Overflow用户
提问于 2014-05-28 18:51:25
回答 2查看 1.6K关注 0票数 2

我正在使用Google Maps Android SDK,我正在尝试找出某个位置是否有可用的StreetView全景图。

描述该功能:“如果用户单击地图标记,并且该位置具有全景图,则显示全景图,否则仅将地图缩放到标记位置。)

如果位置没有全景图,我宁愿不创建SupportStreetViewPanoramaFragment。即使我创建了它,我认为唯一可能的方法是调用setOnStreetViewPanoramaChangeListener,然后调用setPosition并检查侦听器上的全景id……由于某种原因,侦听器没有被调用,但我还没有尝试修复它,因为它感觉太麻烦了。

这里有什么优雅的解决方案吗?

我也希望(坚持)避免使用这个链接调用JavaScript接口v3:https://developers.google.com/maps/documentation/javascript/reference#StreetViewService

代码语言:javascript
复制
var latLng = new google.maps.LatLng(lat, lon);
        streetViewService.getPanoramaByLocation(latLng, STREETVIEW_MAX_DISTANCE, function (streetViewPanoramaData, status) {
            if (status === google.maps.StreetViewStatus.OK) {
                //ok
            } else {
                //no ok
            }
        });
EN

回答 2

Stack Overflow用户

发布于 2018-11-08 14:59:16

简单易用

代码语言:javascript
复制
@Override
        public void onStreetViewPanoramaReady(final StreetViewPanorama streetViewPanorama) {
            streetView = streetViewPanorama;
            streetViewPanorama.setOnStreetViewPanoramaChangeListener(new StreetViewPanorama.OnStreetViewPanoramaChangeListener() {
                @Override
                public void onStreetViewPanoramaChange(StreetViewPanoramaLocation streetViewPanoramaLocation) {
                    if (streetViewPanoramaLocation != null && streetViewPanoramaLocation.links != null) {
                        streetView = streetViewPanorama;
                        streetViewPanorama.setPosition(new LatLng(36.0579667, -112.1430996));
                        StreetViewPanoramaCamera camera = new StreetViewPanoramaCamera.Builder()
                                .bearing(180)
                                .build();
                        streetViewPanorama.animateTo(camera, 100);
                    } else {
                        Toast.makeText(StreetView_Panorama.this, "location not available", Toast.LENGTH_SHORT).show();
                    }
                }
            });
        }
票数 0
EN

Stack Overflow用户

发布于 2018-11-24 07:41:40

您可以使用街景元数据。如果它为您的标记位置返回一个pano_id,那么您应该是好的。使用它需要一个API密钥,但它不使用任何信用。另一方面,当谷歌在今年早些时候改变了他们的云定价时,StreetView panorama的使用变得超级昂贵。所以,不要实例化一个,除非你确定要使用它。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23909623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档