我对Leaflet Map API非常感兴趣。
但是,我需要能够使用Google卫星图层。我无法找到有关如何将Google卫星图层添加到Leaflet的示例。我了解到我仍然需要加载Google Maps API来执行此操作(OpenLayers有一个示例)。
答案 0 :(得分:102)
您不需要插件或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;
答案 1 :(得分:11)
有一个第三方插件: 演示:http://psha.org.ru/leaflet/bel.html(使用切换台切换到Google地图) 资料来源:http://psha.org.ru/leaflet/Google.js
答案 2 :(得分:6)
此存储库包含几个tile图层google和其他非常有用的其他插件: https://github.com/shramov/leaflet-plugins
答案 3 :(得分:3)
Leaflet有一个发布所有可用插件的官方页面:http://leafletjs.com/plugins.html
您可以在那里找到用于向Leaflet添加Google图层支持的插件。
答案 4 :(得分:0)
具有流量
的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'],
});
请查看他们的General Terms
希望有人帮忙
答案 5 :(得分:0)
替代Google Maps API的卫星图层:Leaflet.js with Esri World Imagery tiles
<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: '© '+mapLink+', '+wholink,
maxZoom: 18,
}).addTo(map);
</script>