"インフォボックス"に 'panoramaview'を表示しようとしています。 しかし、私は 'Uncaught TypeError:' google.maps.geometry.spherical.computeHeading 'を使用しようとすると、プロパティ' lat 'of undefinedを読み取れません。"Uncaught TypeError:未定義のプロパティ 'lat'を読み取ることができません"
何が間違っているかチェックできますか?
var myMap;
var myMarkerList=[];
var myBound;
var myStreetView;
var radius;
var clickedMarker;
var m_mark;
var initMap = function(){
var myStyleType = new google.maps.StyledMapType(myStyles,{name: 'Styled Map'});
myMap = new google.maps.Map(document.getElementById('googleMap'), {
center:{lat:40.7413549, lng:-73.9980244},
zoom:13,
mapTypeControlOptions:{
mapTypeIds:['roadmap', 'satellite', 'hybrid', 'terrain',
'styled_map']
}
});
myMap.mapTypes.set('styled_map', myStyleType);
myMap.setMapTypeId('styled_map');
google.maps.event.addListener(myMap, 'click', function(event){
setMarkerList(event.latLng);
openInfoWindow(event.latLng);
});
myBound = new google.maps.LatLngBounds();
m_mark = new google.maps.Marker({
position:{lat: 40.7713024, lng: -73.9632393},
map:myMap,
title:'Park Ave Penthouse',
animation: google.maps.Animation.DROP,
});
m_mark.addListener('click', function(){
openStreetView(this);
clickedMarker = this;
});
myStreetView = new google.maps.StreetViewService();
radius = 50;
}
function setMarkerList(pos){
var myMarker = new google.maps.Marker({
position:pos,
map:myMap,
animation: google.maps.Animation.DROP,
});
myMarker.addListener('click', function(){
openStreetView(this);
clickedMarker = this;
});
myMarkerList.push(myMarker);
setBound(myMarker);
}
function openStreetView(targetMarker){
myStreetView.getPanoramaByLocation(targetMarker.position, radius, getParanomaView);
}
function getParanomaView(data, status){
var myInfo = new google.maps.InfoWindow();
if (status = google.maps.StreetViewStatus.OK) {
var nearStreetViewLocation = data.location.latlng;
var heading = google.maps.geometry.spherical.computeHeading(nearStreetViewLocation, clickedMarker.position);
myInfo.setContent('<div>'+clickedMarker.title+'</div><div id="panorama"></div>');
var panoramaOptions = {
position:nearStreetViewLocation,
pov: {
heading: heading,
pitch: 30
}
};
var panorama = new google.maps.StreetViewPanorama(document.getElementById('panorama'),panoramaOptions);
}
else{
myInfo.setContent('<div>'+clickedMarker.title+'</div><div>No Street View Found</div>');
}
myInfo.open(myMap, targetMarker);
}
私はこれを引き起こしている可能性があるので、もはや就任していないので、私は非常に助けていただければ幸いです。
これは、 'comp.Heading'行の上に' console.log(nearStreetViewLocation); '' console.log(clickedMarker.position);という行を追加するようなエラーが表示されたときに、実際にどのデータを送信しようとしているかを確認します。これらのGoogleのオブジェクトのいくつかは把握するためのクマです。 (ブラウザでF12キーを押すことで、これらのログ行がデベロッパーコンソールに表示されます) –
'if(status = google.maps.StreetViewStatus.OK)'での代入ではありません。私は状態がOKではないと思う。 – James
あなたはタイプミスがあります: 'var nearStreetViewLocation = data.location.latlng;'は 'var nearStreetViewLocation = data.location.latLng;'にする必要があります。他のコメント/回答のほとんどは有効ですが、エラー。 – geocodezip