Oggi un numero sempre maggiore di aziende utilizza la visualizzazione stradale per mostrare gli appartamenti da interni.Come sapere se il panorama di una strada è all'interno o all'esterno
Il mio programma fornisce la possibilità di mostrare la vista stradale in base all'attività selezionata. Ma non voglio mostrare in casa. Solo all'aperto. Perché Indoors mi impedisce di spostarmi, solo per girare a 360 gradi.
Qualcuno sa come recuperare dall'API di Street View un qualche valore se sto per mostrare in interni o all'aperto?
La ringrazio molto,
Questa è la mia frammenti di codice finora apribili vista stradale secondo l'indirizzo selezionato:
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;
};
L'idea principale è stato quello di ottenere la posizione Panorama e verificare la distanza posti più vicini intorno a 360 gradi.
Sembra che richieste simili siano state presentate come bug/miglioramenti: http://code.google.com/p/gmaps-api-issues/issues/list? can = 2 & q = indoor & colspec = ID + Tipo + Status + Introdotto + Fisso + Riepilogo + Stelle + ApiType + Interno e celle = tessere – JSuar
Non sto postando questa risposta come può cambiare in qualsiasi giorno, ma per ora ho scoperto che ogni proprietà di panorama.links ha una proprietà description (contenente il nome della via) se la posizione panoramica è esterna ed è vuota se è all'interno, quindi in base a questo è possibile verificare se ' (panorama.links.length === 0 || panorama.links [0] .description == "") ', dovrebbe restituire true se in ambienti chiusi. Devo aggiungere che non l'ho testato in modo estensivo, quindi non sono sicuro che manterrà. E credo che questo cambierà presto – yoelp
Grazie, fammi testare la tua strada –