2009-07-08 69 views
2

如何在網頁上的Google地圖中激活Transit層?該地圖是使用搜索控件創建的。嵌入式Google SearchControl地圖上的Transit層

<!-- ++Begin Map Search Control Wizard Generated Code++ --> 
    <!-- 
    // Created with a Google AJAX Search Wizard 
    // http://code.google.com/apis/ajaxsearch/wizards.html 
    --> 

    <!-- 
    // The Following div element will end up holding the map search control. 
    // You can place this anywhere on your page 
--> 
    <div id="mapsearch"> 
    <span style="color:#676767;font-size:11px;margin:1px;padding:0px;">Loading map ...</span> 
    </div> 

    <!-- Maps Api, Ajax Search Api and Stylesheet 
    // Note: If you are already using the Maps API then do not include it again 
    //  If you are already using the AJAX Search API, then do not include it 
    //  or its stylesheet again 
    // 
    // The Key Embedded in the following script tags is designed to work with 
    // the following site: 
    --> 
    <script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAxMICTqJZCQhVvaG5Z6vcbBQsQZTeCW4bnSEJHaQGIFLLp_Ev4hQzmbQjyOZxyLLe8CmaFaW5G3RI8g" 
    type="text/javascript"></script> 
    <script src="http://www.google.com/uds/api?file=uds.js&v=1.0&source=uds-msw&key=ABQIAAAAxMICTqJZCQhVvaG5Z6vcbBQsQZTeCW4bnSEJHaQGIFLLp_Ev4hQzmbQjyOZxyLLe8CmaFaW5G3RI8g" 
    type="text/javascript"></script> 
    <style type="text/css"> 
    @import url("http://www.google.com/uds/css/gsearch.css"); 
    </style> 

    <!-- Map Search Control and Stylesheet --> 
    <script type="text/javascript"> 
    window._uds_msw_donotrepair = true; 
    </script> 
    <script src="http://www.google.com/uds/solutions/mapsearch/gsmapsearch.js?mode=new" 
    type="text/javascript"></script> 
    <style type="text/css"> 
    @import url("http://www.google.com/uds/solutions/mapsearch/gsmapsearch.css"); 
    </style> 

    <style type="text/css"> 
    .gsmsc-mapDiv { 
     height : 400px; 
    } 

    .gsmsc-idleMapDiv { 
     height : 400px; 
    } 

    #mapsearch { 
     width : 700px; 
     margin: 1px; 
     padding: 0px; 
    } 
    </style> 
    <script type="text/javascript"> 
    function LoadMapSearchControl() { 

     var options = { 
      zoomControl : GSmapSearchControl.ZOOM_CONTROL_ENABLE_ALL, 
      title : "<?php echo $city. ','. $country; ?>", 
      url : "", 
      idleMapZoom : GSmapSearchControl.ACTIVE_MAP_ZOOM+1, 
      activeMapZoom : GSmapSearchControl.ACTIVE_MAP_ZOOM+1 
      } 

     new GSmapSearchControl(
      document.getElementById("mapsearch"), 
      "<?php echo $city. ','. $country; ?>", 
      options 
      ); 
    } 
    // arrange for this function to be called during body.onload 
    // event processing 
    GSearch.setOnLoadCallback(LoadMapSearchControl); 
    </script> 
<!-- ++End Map Search Control Wizard Generated Code++ --> 

回答

1

的谷歌地圖API將讓你add a tile overlay到您的地圖,正是如此:

var tileLayerOverlay = new GTileLayerOverlay(
    new GTileLayer(null, null, null, { 
    tileUrlTemplate: 'http://example.com/transit_tiles/{Z}_{X}_{Y}.png', 
    isPng:true, 
    opacity:1, 
    }) 
); 

map.addOverlay(tileLayerOverlay); 

但要做到這一點你需要已經使自己的一套過境瓦片。

順便說一句,谷歌使用其自己的運輸層中的瓦片都通過了類似的方案來檢索:

http://mlt2.google.com/mapslt?lyrs=transit&x=1310&y=3166&z=13&w=256&h=256&gl=us&hl=en

所以,你可以這樣做:

var gTransitTileUrlTemplate = 'http://mlt1.google.com/mapslt?lyrs=transit&x={X}&y={Y}&z={Z}&w=256&h=256&gl=us&hl=en'; 

然而,這可能違反Google Maps API的服務條款,並且不保證Google不會更改此網址並破壞您的應用程序。