2009-07-08 5 views
2

Comment puis-je activer la couche Transit dans une carte Google sur une page Web? La carte est créée en utilisant le contrôle de recherche.Couche Transit dans la carte Google SearchControl intégrée

<!-- ++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++ --> 

Répondre

1

L'API Google Maps vous permettra add a tile overlay à votre carte, ainsi:

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

Mais pour ce faire, vous aurez besoin d'avoir rendu votre propre jeu de tuiles de transit.

Soit dit en passant, les tuiles Google utilise pour sa propre couche de transit sont récupérés par un schéma similaire:

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

Ainsi, vous pouvez le faire:

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

Cependant, cela peut constituer une violation les Conditions d'utilisation de l'API Maps, et il n'y a aucune garantie que Google ne modifiera pas cette URL et ne divulguera pas votre demande.

Questions connexes