我正在爲建築物的內部創建漫遊,並且想知道如何在StreetViewPanorama上繪製標記。也許我錯過了一些基本的東西,但是我讀過的所有東西都表明你需要一個lat和lng來繪製標記。如何在Google StreetViewPanorama上繪製標記或圓形
以下是我有:
var initPosPanoID, streetView;
function initPano() {
// Set StreetView provider.
var streetViewOptions = {
zoom: 0,
panoProvider: getCustomPanorama,
pano : "lobby",
addressControlOptions: {
position: google.maps.ControlPosition.BOTTOM_CENTER
}
};
// Create a StreetView object.
var streetViewDiv = document.getElementById('map');
streetView = new google.maps.StreetViewPanorama(streetViewDiv, streetViewOptions);
// Add links when it happens "links_change" event.
google.maps.event.addListener(streetView, "links_changed", createCustomLink);
google.maps.event.addListener(streetView, "pano_changed", function() {
var panoCell = document.getElementById('pano-cell');
panoCell.innerHTML = panorama.getPano();
});
}
function getCustomPanoramaTileUrl(panoID, zoom, tileX, tileY) {
// Return a pano image given the panoID.
return "images/he/" + panoID + '.jpg';
}
function getHeading(panoID) {
var heading;
switch(panoID) {
case "lobby":
heading = 0;
break;
case "secorner":
heading = 100;
break;
}
return heading;
}
function getCustomPanorama(panoID) {
// get a custom heading for the pano
var heading = getHeading(panoID);
var streetViewPanoramaData = {
links: [],
copyright: 'Imagery (c) HumanElement',
tiles: {
tileSize : new google.maps.Size(1024, 512),
worldSize : new google.maps.Size(1024, 512),
// The heading in degrees at the origin of the panorama
// tile set.
centerHeading : heading,
getTileUrl : getCustomPanoramaTileUrl
}
};
switch(panoID) {
case "lobby":
// Description of this point.
streetViewPanoramaData["location"] = {
pano: 'lobby',
description: "Human Element",
latLng: new google.maps.LatLng(42.282138, -83.751471)
};
return streetViewPanoramaData;
case "secorner":
streetViewPanoramaData["location"] = {
pano: 'secorner',
description: "SouthEast Corner",
latLng: new google.maps.LatLng(42.282078, -83.751413)
};
return streetViewPanoramaData;
}
}
function createCustomLink() {
var links = streetView.getLinks();
var panoID = streetView.getPano();
switch(panoID) {
case "lobby":
links.push({
description : "SouthEast Corner",
pano : "secorner",
heading : 280
});
break;
case "secorner":
links.push({
description : "HumanElement Lobby",
pano : "lobby",
heading : 90
});
break;
}
}
我想有在不同的地點不同的標記或接觸點,但我不知道如何讓他們在那裏。
試圖繪製一個標準的標記不工作沒有拉特/ lng。
我想過試圖圍繞google.maps.Point創建它,想我可能能夠使用我的瓷磚中的x和y,但看起來似乎無法工作。
我看到的其他選項與google.maps.drawing.DrawingManager有關。
有沒有人對此有任何建議?
您確實需要座標(lat/lng)在StreetView上放置標記。你爲什麼不能獲得這些座標? – geocodezip
我想我不認爲如果我使用自定義的室內光球來拍攝我的全景照片,而不是公開提供的,例如,在此處放置標記或繪製圓圈:https://developers.google.com/maps/documentation/javascript/examples/streetview-custom-simple –
請注意,您無法在全景圖上放置圓(至少最後我看了),只有一個google.maps.Marker。 – geocodezip