今日ますます多くの企業が室内からマンションを示すために、ストリートビューを使用しているかどうかを知る方法。ストリートビューのパノラマは、屋内または屋外
選択したビジネスに応じてストリートビューを表示するために私のプログラムを供給する能力。しかし、私は屋内では見せたくありません。屋外のみ。屋内では私が移動するのをブロックするので、360度だけ回転します。私は屋内または屋外示しつもりならば
誰もがストリートビューAPIいくつかの値からフェッチする方法を知っていますか?
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;
};
主なアイデアは、パノラマの位置を取得してまでの距離を確認することでした:
は、選択したアドレスに応じてこれはこれまでのところ、コードの私のスニペットそのオープンストリートビューがある
、ありがとうございました360度付近の最も近い場所。
は同様の要求がバグ/機能強化として提出されているように見えます)チケットを追跡:http://code.google。IDとタイプ+ステータス+紹介+固定+要約+スター+ ApiType +内部&セル=タイル – JSuar
私は答えとしてこれを投稿していません。それはいつでも変わるかもしれませんが、パノラマの場所が屋内であればpanorama.linksの各プロパティには説明プロパティ(通りの名前を含む)があり、屋内の場合は空であることがわかりました。 (panorama.links.length === 0 || panorama.links [0] .description == "") '、屋内の場合はtrueを返します。 私は広範囲にテストしなかったので、それが保持されるかどうかはわかりません。 そして、私はこれがすぐに変わると信じています – yoelp
ありがとう、あなたの道を試してみましょう –