2011-12-20 95 views
1

我想弄清楚如何讓我的谷歌地圖嵌入默認爲「地形視圖」,並禁用其他選項,如衛星視圖和街景。任何人都可以將我指向正確的方向嗎?這裏是我的代碼...谷歌地圖地形按默認設置查看

下面是它目前是如何呈現:http://img842.imageshack.us/img842/7299/screenshot20111220at125.png

var map; 
var middle_earth_MORADOR = new google.maps.LatLng(38, 0); 

    function initialize() { 

     // Define Styles 
     var styles = [ 
      { 
       //featureType: "all", elementType: "all", stylers: [ { visibility: "on" }, { hue: "#e5f5fb" } ] 
      } 
     ]; 


     // Default map options 
     var mapOptions = { 
      zoom: 2, 
      center: middle_earth_MORADOR, 
      backgroundColor: "#000" 
     }; 

     var locations = [ 
      <?php foreach ($Projects as $Project) {    

       $oProjectPhotos = new clsProjectPhotos($Project['idProject']); 
       $photos = $oProjectPhotos->getProjectPhotos(); 
       echo '["'.$Project["Name"].'", '.$Project["gmapslat"].', '.$Project["gmapslng"].', "'.$Project["CountryName"].'"],'; 
       echo "\n"; 
       echo "\t\t"; 
      } 
      ?> 
     ]; 


     map = new google.maps.Map(document.getElementById("map_canvas"),mapOptions); 
     var styledMapOptions = { 
      map: map, 
      name: "map" 
     } 
     var build = new google.maps.StyledMapType(styles,styledMapOptions); 
     map.mapTypes.set('map', build); 
     map.setMapTypeId('map'); 

     var infowindow = new google.maps.InfoWindow(); 

     var marker, i; 

     for (i = 0; i < locations.length; i++) { 
      marker = new google.maps.Marker({ 
      position: new google.maps.LatLng(locations[i][1], locations[i][2]), 
      map: map 
      }); 

      google.maps.event.addListener(marker, 'mouseover', (function(marker, i) { 
      return function() { 
       infowindow.setContent(
       '<div>' + locations[i][0] + '</div>'+ 
       '<div>' + locations[i][4] + '</div>'+ 
       '<div>' + locations[i][5] + '</div>'+ 
       '<div>' + locations[i][6] + '</div>' 
      ); 
       infowindow.open(map, marker); 
      } 

      })(marker, i)); 
     } 

    } 

回答

2

可以指定地圖類型的用戶可以選擇:

var mapOptions = { 
    zoom: 12, 
    //center: brooklyn, 
    center: new google.maps.LatLng(-23.565, -46.6565), 
    mapTypeControlOptions: { 
     mapTypeIds: [google.maps.MapTypeId.TERRAIN] 
    }, 
    mapTypeId: google.maps.MapTypeId.TERRAIN 
    }; 

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

哪裏mapTypeControlOptions是類型控制選項,而mapTypeId是默認的地圖類型。

+0

這工作得很好。現在它僅限制UI上的「TERRAIN」視圖。唯一的問題是它沒有設置到文檔加載的TERRAIN視圖。 – wwwroth 2011-12-20 19:08:56

+0

這似乎不起作用。在爲它查看API後,嘗試以各種方式玩弄它。 – wwwroth 2011-12-22 20:33:32

+0

我認爲,唯一的錯誤是在中心屬性。我是從谷歌樣本複製的。你必須指定一個latlng。 – 2011-12-22 21:14:10