2012-05-31 2 views
0

비영리 단체 "Friends of Knox Mountain Park"에 대한 대화식지도를 만들고 있지만 Google 어스보기에 문제가 있습니다.Google 어스 통합/추가지도보기

나는 몇 주 동안 웹 검색을 해왔고, 내가 찾은 해결책 중 어느 것도 나를 찾지 못했다. 누군가 코드를보고 Google 어스 뷰를지도에 포함 시키려면 어떻게해야하는지 알려주세요. 미리 감사드립니다.

온라인 프로젝트 : http://www.virtualbc.ca/knoxmountain/

그리고 이것은 자바 스크립트 파일 (mapa2.js) 구글지도의 코드가 포함됩니다

google.load('earth', '1'); 
var map; 
var googleEarth; 

var gmarkers = []; 

var iconShadow = new google.maps.MarkerImage('icons/shadow.png', 
new google.maps.Size(46, 42), 
new google.maps.Point(0,0), 
new google.maps.Point(13, 42)); 

var sites = [ 
['Apex Trail - Shelter',49.91174271, -119.48507050, 4, '<a href="vtours/apex_trail_shelter/index.html?iframe=true&width=88%&height=98%" rel="prettyPhoto"><img src="images/apex_point_high.jpg"></a>','magenta','14'], 
['Apex Trail',49.91286999, -119.48413424, 3, '<a href="vtours/apex_trail_1/index.html?iframe=true&width=88%&height=98%" rel="prettyPhoto"><img src="images/apex_point_low.jpg"></a>','lemon','1'], 
['Gordon Trail',49.91971281, -119.47954356, 2, '<a href="vtours/gordon_trail_1/index.html?iframe=true&width=88%&height=98%" rel="prettyPhoto"><img src="images/apex_point_low.jpg"></a>','lemon','1'], 
['Paul Tomb Bay',49.92555541, -119.47710250, 1, '<a href="vtours/paul_tomb_bay_1/index.html?iframe=true&width=88%&height=98%" rel="prettyPhoto"><img src="images/tomb_bay.jpg"></a>','lemon','1'] 
]; 


var infowindow = null; 

var overlay; 

// Used to make Google Map quard coords to MapCruncher/BingMaps quard coords  
function TileToQuadKey (x, y, zoom) 
{ 
    var quad = ""; 
    for (var i = zoom; i > 0; i--) 
    { 
     var mask = 1 << (i - 1); 
     var cell = 0; 
     if ((x & mask) != 0) 
      cell++; 
     if ((y & mask) != 0) 
      cell += 2; 
     quad += cell; 
    } 
    return quad; 
} 

function init() { 
    var centerMap = new google.maps.LatLng(49.909671, -119.482241); 

    var myOptions = { 
     zoom: 10, 
     center: centerMap, 
     mapTypeId: google.maps.MapTypeId.SATELLITE 
    } 

    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 

     // Create the tile layers  

    // ASTER Tile Layer 
    myASTEROptions = { 
    getTileUrl : function (a,b) { 
return "http://www.virtualbc.ca/knoxmountain/map/" + TileToQuadKey(a.x,a.y,b) + ".png"; 
}, 
    isPng: true, 
    opacity: 1.0, 
    tileSize: new google.maps.Size(256,256), 
    name: "ASTER", 
    minZoom:13, 
    maxZoom:20 
    } 

    ASTERMapType = new google.maps.ImageMapType(myASTEROptions); 
    map.overlayMapTypes.insertAt(0, ASTERMapType); 

    // Aerial Tile Layer 
    myAerialOptions = { 
    getTileUrl : function (a,b) { 
return "http://www.virtualbc.ca/knoxmountain/map/" + TileToQuadKey(a.x,a.y,b) + ".png"; 
}, 
    isPng: true, 
    opacity: 1.0, 
    tileSize: new google.maps.Size(256,256), 
    name: "Aerial", 
    minZoom:15, 
    maxZoom:21 
    } 

    AerialMapType = new google.maps.ImageMapType(myAerialOptions); 
    map.overlayMapTypes.insertAt(1, AerialMapType); 

    var panorama = new google.maps.StreetViewPanorama(map.getDiv()); 
    panorama.setVisible(false); 
    panorama.set('enableCloseButton', true); 
    map.setStreetView(panorama); 
    panorama.setPosition(centerMap); 

    setMarkers(map, sites);  
    setZoom(map, sites); 

    infowindow = new google.maps.InfoWindow({ 
     content: "Loading..." 
    }); 

    googleEarth = new GoogleEarth(map); 

    google.maps.event.addListenerOnce(map, 'tilesloaded', addOverlays); 

} 

/* 
This functions sets the markers (array) 
*/ 
function setMarkers(map, markers) { 
    for (var i = 0; i < markers.length; i++) { 
     var site = markers[i]; 
     var siteLatLng = new google.maps.LatLng(site[1], site[2]); 

     var marker = new google.maps.Marker({ 
      position: siteLatLng, 
      map: map, 
      title: site[0], 
      zIndex: site[3], 
      html: site[4], 
      // Markers drop on the map 
      animation: google.maps.Animation.DROP, 
      icon: 'http://www.virtualbc.ca/knoxmountain/icons/icon.png', 
      shadow: iconShadow 
     }); 

     gmarkers.push(marker); 

     google.maps.event.addListener(marker, "click", function() { 
      infowindow.setContent(this.html); 
      infowindow.open(map, this); 
     }); 
    } 
} 

/* 
Set the zoom to fit comfortably all the markers in the map 
*/ 
function setZoom(map, markers) { 
    var boundbox = new google.maps.LatLngBounds(); 
    for (var i = 0; i < markers.length; i++) 
    { 
     boundbox.extend(new google.maps.LatLng(markers[i][1], markers[i][2])); 
    } 
    map.setCenter(boundbox.getCenter()); 
    map.fitBounds(boundbox); 
} 

// This function picks up the click and opens the corresponding info window 

function myclick(i) { 
    google.maps.event.trigger(gmarkers[i-1], "click"); 
} 

google.maps.event.addDomListener(window, 'load', init); 

답변

0

나는 당신의 사이트와주의 첫 번째 문제는 당신이 연결되어입니다 http://www.virtualbc.ca/src/googleearth-compiled.js 존재하지 않습니다.

+0

감사합니다. jlivni가이를 지적했습니다. 이제 어스 탭을 볼 수 있지만 마커의 그림자는 보이고 어스 뷰를 선택하면 흔적이있는 그래픽이 사라집니다. – user1428930