Obecnie coraz więcej firm korzysta z widoku ulicy, aby wyświetlać apartamenty z wnętrza.Jak sprawdzić, czy panorama ulicy jest w środku lub na zewnątrz?
Mój program umożliwia wyświetlanie widoku ulicy zgodnie z wybraną firmą. Ale nie chcę pokazywać w domu. Tylko na zewnątrz. Ponieważ Indoors blokuje mi ruch, tylko po to, by obrócić się o 360 stopni.
Czy ktoś wie, jak pobrać z widoku ulicy API, jeśli mam zamiar wyświetlać w pomieszczeniu lub na zewnątrz?
Dziękuję bardzo,
To jest moje fragmenty kodu tak dalece, że otwarte widok ulicy zgodnie z wybranym adresem:
function load_map_and_street_view_from_address(address) {
var geocoder = new google.maps.Geocoder();
geocoder.geocode({
'address': address
}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var gps = results[0].geometry.location;
create_map_and_streetview(gps.lat(), gps.lng(), 'map_canvas', 'pano');
}
});
}
function create_map_and_streetview(lat, lng, map_id, street_view_id) {
var googlePos = new google.maps.LatLng(lat,lng);
addLatLng = new google.maps.LatLng(lat,lng);
var service = new google.maps.StreetViewService();
service.getPanoramaByLocation(addLatLng, 50, showPanoData);
}
function showPanoData(panoData, status) {
if (status != google.maps.StreetViewStatus.OK) {
$('#pano').html('No StreetView Picture Available').attr('style', 'text-align:center;font-weight:bold').show();
return;
}
$('#pano').show();
var angle = computeAngle(addLatLng, panoData.location.latLng);
var panoOptions = {
position: addLatLng,
addressControl: false,
linksControl: false,
panControl: false,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.SMALL
},
pov: {
heading: angle,
pitch: 10,
zoom: 1
},
enableCloseButton: true,
visible:true
};
panorama.setOptions(panoOptions);
}
function computeAngle(endLatLng, startLatLng) {
var DEGREE_PER_RADIAN = 57.2957795;
var RADIAN_PER_DEGREE = 0.017453;
var dlat = endLatLng.lat() - startLatLng.lat();
var dlng = endLatLng.lng() - startLatLng.lng();
var yaw = Math.atan2(dlng * Math.cos(endLatLng.lat() * RADIAN_PER_DEGREE), dlat)
* DEGREE_PER_RADIAN;
return wrapAngle(yaw);
}
function wrapAngle(angle) {
if (angle >= 360) {
angle -= 360;
} else if (angle < 0) {
angle += 360;
}
return angle;
};
Główną ideą było uzyskać Panorama lokalizację i sprawdzić odległość do najbliższe miejsca wokół 360 stopni.
Wygląda na to, że podobne żądania zostały zgłoszone jako błędy/ulepszenia: http://code.google.com/p/gmaps-api-issues/issues/list? can = 2 & q = indoor & colspec = ID + Type + Status + Wprowadzony + Fixed + Summary + Stars + ApiType + Internal & cells = tiles – JSuar
Nie zamieszczam tego jako odpowiedzi może się zmienić każdego dnia, ale na razie odkryłem, że każda właściwość pliku panorama.links ma właściwość opisową (zawierającą nazwę ulicy), jeśli lokalizacja panoramy znajduje się na zewnątrz i jest pusta, jeśli znajduje się w pomieszczeniu, więc na jej podstawie można sprawdzić, czy ' (panorama.links.length === 0 || panorama.links [0] .description == "") ', powinien zwrócić wartość true, jeśli znajduje się w pomieszczeniu. Powinienem dodać, że nie przetestowałem go zbyt szeroko, więc nie jestem pewien, czy to się uda. Wierzę, że to się wkrótce zmieni – yoelp
Dzięki, pozwól mi przetestować swoją drogę –