2017-02-19 48 views

回答

5

對於谷歌的衛星數據,你可以用TileImage源去, 指定模式的URL:

var map = new ol.Map({ 
 
     layers: [ 
 
      new ol.layer.Tile({ 
 
      source: new ol.source.TileImage({url: 'http://khm0.googleapis.com/kh?v=717&hl=pl&&x={x}&y={y}&z={z}'}) 
 
      }) 
 
     ], 
 
     target: 'map', 
 
     view: new ol.View({ 
 
      center: ol.proj.fromLonLat([19.2, 52]), 
 
      zoom: 6 
 
     }) 
 
\t \t });

編輯: 對於谷歌的平原地圖數據,您可以用TileImage源去, 指定pb參數部分的模式url:

var map = new ol.Map({ 
 
     layers: [ 
 
      new ol.layer.Tile({ 
 
      source: new ol.source.TileImage({url: 'http://maps.google.com/maps/vt?pb=!1m5!1m4!1i{z}!2i{x}!3i{y}!4i256!2m3!1e0!2sm!3i375060738!3m9!2spl!3sUS!5e18!12m1!1e47!12m3!1e37!2m1!1ssmartmaps!4e0'}) 
 
      }) 
 
     ], 
 
     target: 'map', 
 
     view: new ol.View({ 
 
      center: ol.proj.fromLonLat([19.2, 52]), 
 
      zoom: 6 
 
     }) 
 
\t \t });

+1

或者是,更容易與地址在OL3答案中給出: http://stackoverflow.com/a/33993878/6068293 –

+7

直接訪問這樣的磁貼可能違反了Google的服務條款。 https://developers.google.com/maps/terms部分10.1.a – Rob

4

的OpenLayers有使用API​​,它們用於OL2和OL3的書面同意。由於所述api經常發生的問題,對它的支持停止了。

我們是不允許直接使用瓷磚,答案是不合法的。

但是,您也可以使用谷歌的地圖API,並用它編寫自己的OL源實現或使用現有的附加像ol3-google-maps

更多信息可以在這裏找到:https://github.com/openlayers/openlayers/issues/2205