2017-11-28 10 views
0

私は静的画像API(GoogleにURLを渡して画像を返す)を使用しています。私の問題は、Googleが戻ってくるイメージが、時にはストレートオン/クリアなアドレスの表示ではないことです。 Googleマップの検索機能がサムネイルとして表示されるものと同じイメージを得るために探しています。Googleストリートビュー画像APIを使用してアドレスから直接画像を取得する

私はこのAPIのGoogleドキュメントを読んでいます。 URLの例:https://maps.googleapis.com/maps/api/streetview?parameters&size=640x640&fov=50&location=4113+Hartford+Dr+Garland+TX

Googleマップにこの同じアドレス(4113 Hartford Dr、Garland、TX)を直接置くと、よりきれいな画像が得られます。

私はFOV値を変更して実験しました。私の唯一の他のアイデアは、見出しを使用することですが、私はこれについて不明です。

最後の実装はVBAを使用したExcelで行われます。

追加情報が必要な場合はお知らせください。

+0

https://stackoverflow.com/questions/16111626/why-are-some-street-view-images-from-the-wrong-angle?rq=1明確を見ていない、似ていますここに答えてください。 – Shawn007

+0

見出しを追加しようとしました。それはほぼ同じ結果ですが、とにかくそれは動作し、見出しを特定することができます。 https://maps.googleapis.com/maps/api/streetview?parameters&size=640x640&fov=50&location=32.8625490,-96.6173172&heading=180 –

+0

あなたは常に180を使用しますか?これの背後にある論理? – Shawn007

答えて

0

compute the headingにする必要があります。私は生の数学を持っていませんが、これはオプションの場合はJS APIを使った例です。

function getStreetView(lat, lng) { 
    let panorama = new google.maps.StreetViewPanorama(
     document.getElementById('panorama'), { 
     position: {lat: lat, lng: lng} 
    }) 
    let service = new google.maps.StreetViewService 
    service.getPanoramaByLocation(panorama.getPosition(), 50, function(panoData) { 
     if (panoData) { 
     let panoCenter = panoData.location.latLng 
     let heading = google.maps.geometry.spherical.computeHeading(panoCenter, {lat: lat, lng: lng}) 
     let pov = panorama.getPov() 
     pov.heading = heading 
     panorama.setPov(pov) 
     } else { 
     alert('no streetview found') 
     } 
    }) 
    map.setStreetView(panorama) // set dude on map 
    } 
関連する問題