Openlayers v4.0.1 support Google Maps Javascript A

2019-03-22 05:11发布

I wonder know if the last version of Openlayers (v4.0.1) supports Google Maps as a Tile Layer. I can't find any documention about this. If Openlayers doesn't support Google Maps, someone could tell me if there is any way to do this.

2条回答
放荡不羁爱自由
2楼-- · 2019-03-22 05:31

For the Google's satellite data you can go with TileImage source, specifying pattern url's:

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

EDIT: For the Google's plain map data you can go with TileImage source, specifying pattern url's for the parts of pb argument:

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

查看更多
混吃等死
3楼-- · 2019-03-22 05:55

OpenLayers has a written consent for using the api, which they used for OL2 and OL3. The support for it was stopped because of recurring issues with said api.

We are not allowed to use the tiles directly, the answer is not legal.

However, you may use Google's Map api and write your own OL source implementation with it or use an existing extension like ol3-google-maps

More information can be found here: https://github.com/openlayers/openlayers/issues/2205

查看更多
登录 后发表回答