gpt4 book ai didi

angularjs - 在代码上使用 API 时,Google Place 的街景与 google map 不一样

转载 作者:行者123 更新时间:2023-12-02 22:36:45 26 4
gpt4 key购买 nike

我遇到以下问题,

我正在尝试显示特定地点(商业/谷歌地点 ID)的街景 View ,但我提供的结果与您前往谷歌地图并搜索该地点时提供的结果不同。

示例:

在 google 上搜索商家/地点:https://www.google.com.mx/maps/place/Adidas/@34.0838081,-118.3640503,17z/data=!4m12!1m6!3m5!1s0x80c2becbfdfa91f9:0xcc0878717da8381!2sAdidas!8m2!3d34.0840354!4d-118.3640653!3m4!1s0x80c2becbfdfa91f9:0xcc0878717da8381!8m2!3d34.0840354!4d-118.3640653?hl=es

通过 Places API 提取某个地点的位置,然后显示该位置的街景 View :

`

angular.module('plunker', ['ui.bootstrap', 'ngMap']).controller('MapDemoCtrl', ["$scope","NgMap",function ($scope, NgMap) {


var placeId = "ChIJ-ZH6_cu-woARgYPaF4eHwAw";


NgMap.getMap({id:'mapId'}).then(function(map){
var mapSV = map.getStreetView();
var placeS = new google.maps.places.PlacesService(map);
var streetS = new google.maps.StreetViewService();

placeS.getDetails({placeId:placeId},function(res){
console.log("Res",res);
var placeLocation = res.geometry.location;
map.setCenter(placeLocation);
mapSV.setPosition(placeLocation);
mapSV.setVisible(true);
window.place = res;

var marker = new google.maps.Marker({
position: placeLocation,
map: map,
title: "Place"
});

marker.addListener("click",function(ev){
console.log("dada",ev);
mapSV.setPosition(ev.latLng);
mapSV.setVisible(true);
})
});
})

}]);

`

https://plnkr.co/edit/H3ChFcmlQArCPfb2RCNI?p=preview

我希望拥有与谷歌地图显示的相同的街景位置,但相反,我得到了另一个指向业务不相关部分的点。我如何获得正确的:

我在代码中添加了一个屏幕截图以供更多引用。

有时,我得到的是一家企业的室内街景,但显示的是隔壁企业的室内,因为我要找的企业没有街景,但谷歌地图却显示了正确的室外街道查看。

最佳答案

看起来 API 会捕捉到最近的道路并显示该位置的街景图像。

enter image description here

您可以尝试使用StreetViewService来搜索最佳的可用全景图,而不是最近的全景图。此外,您还可以过滤掉所有室内全景。

NgMap.getMap({id:'mapId'}).then(function(map){
var mapSV = map.getStreetView();
var placeS = new google.maps.places.PlacesService(map);
var streetS = new google.maps.StreetViewService();

placeS.getDetails({placeId:placeId},function(res){
console.log("Res",res);
var placeLocation = res.geometry.location;
map.setCenter(placeLocation);

var panoRequest = {
location: placeLocation,
preference: google.maps.StreetViewPreference.BEST,
source: google.maps.StreetViewSource.OUTDOOR
};

streetS.getPanorama(panoRequest, function(panoData, status){
if (status === google.maps.StreetViewStatus.OK) {
mapSV.setPosition(panoData.location.latLng);
mapSV.setVisible(true);
} else {
//Handle other statuses here
mapSV.setPosition(placeLocation);
mapSV.setVisible(true);
}
});

window.place = res;

var marker = new google.maps.Marker({
position: placeLocation,
map: map,
title: "Place"
});

marker.addListener("click",function(ev){
console.log("dada",ev);
mapSV.setPosition(ev.latLng);
mapSV.setVisible(true);
})
});
})

我修改了示例:https://plnkr.co/edit/6haMg7hTd4mI6qLpeF5U?p=preview

希望这有帮助!

关于angularjs - 在代码上使用 API 时,Google Place 的街景与 google map 不一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44767207/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com