2009-07-08 4 views
2

Как я могу активировать слой Transit в Карте Google на веб-странице? Карта создается с помощью элемента управления поиском.Транзитный слой в встроенной Google SearchControl map

<!-- ++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 Карт Google позволит вам 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); 

Но для этого вы должны были бы сослужили свой собственный набор транзитных плиток.

Кстати, плитки Google использует для своего транзитного слоя извлекаются с помощью аналогичной схеме:

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'; 

Однако это может привести к нарушению Условий использования API Карт Google, и нет никакой гарантии, что Google не изменит этот URL-адрес и не разорвет ваше приложение.

Смежные вопросы