API Leaflet Map с Google Satellite Layer

Я очень заинтересован в API Leaflet Map.

Однако мне нужно иметь возможность использовать слой Google Satellite. Я не смог найти пример того, как добавить слой Google Satellite в Leaflet. Я понимаю, что мне все еще нужно будет загрузить API Карт Google для этого (пример есть у OpenLayers).

4 ответа

Решение

Leaflet имеет официальную страницу для публикации всех доступных плагинов: http://leafletjs.com/plugins.html

Там вы найдете плагины для добавления поддержки слоев Google в Leaflet.

Вам не нужен плагин или Google API, вы можете добавить его как слой листов XYZ.

Улицы

googleStreets = L.tileLayer('http://{s}.google.com/vt/lyrs=m&x={x}&y={y}&z={z}',{
    maxZoom: 20,
    subdomains:['mt0','mt1','mt2','mt3']
});

Гибридный:

googleHybrid = L.tileLayer('http://{s}.google.com/vt/lyrs=s,h&x={x}&y={y}&z={z}',{
    maxZoom: 20,
    subdomains:['mt0','mt1','mt2','mt3']
});

Спутник:

googleSat = L.tileLayer('http://{s}.google.com/vt/lyrs=s&x={x}&y={y}&z={z}',{
    maxZoom: 20,
    subdomains:['mt0','mt1','mt2','mt3']
});

местность

googleTerrain = L.tileLayer('http://{s}.google.com/vt/lyrs=p&x={x}&y={y}&z={z}',{
    maxZoom: 20,
    subdomains:['mt0','mt1','mt2','mt3']
});


Note the difference in the "lyrs" parameter in the URL:
Hybrid: s,h;
Satellite: s;
Streets: m;
Terrain: p;

Для этого есть сторонний плагин: Демо: http://psha.org.ru/leaflet/bel.html (переключитесь на Google Maps с помощью переключателя) Источник: http://psha.org.ru/leaflet/Google.js

Альтернатива Google Maps API для спутникового слоя: Leaflet.js с плитками Esri World Imagery

<script>

    var map = L.map('map').setView([-41.2858, 174.78682], 14);

    var mapLink = '<a href="http://www.esri.com/">Esri</a>';
    var wholink = 'i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community';

    L.tileLayer(
        'http://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}', {
        attribution: '&copy; '+mapLink+', '+wholink,
        maxZoom: 18,
        }).addTo(map);

</script>

Этот репозиторий содержит несколько слоев листов Google и других очень полезных плагинов: https://github.com/shramov/leaflet-plugins

Слой заголовка Google с трафиком

var googleTraffic = L.tileLayer('https://{s}.google.com/vt/lyrs=m@221097413,traffic&x={x}&y={y}&z={z}', {
        maxZoom: 20,
        minZoom: 2,
        subdomains: ['mt0', 'mt1', 'mt2', 'mt3'],
    });

См. Их Общие условия

Надеюсь, кто-то поможет в этом

Другие вопросы по тегам