leaflet入門二--小功能效果
阿新 • • 發佈:2018-11-09
1 移動和縮放
// disable drag and zoom handlers
//禁止移動和放大縮小
map.dragging.disable();
map.touchZoom.disable();
map.doubleClickZoom.disable();
map.scrollWheelZoom.disable();
// disable tap handler, if present.
//禁止單擊
if (map.tap) map.tap.disable();
2 單擊事件
var popup = new L.popup(); function onMapClick(e) { popup .setLatLng(e.latlng) .setContent("You clicked the map at " + e.latlng.toString()) .openOn(map); } map.on('click', onMapClick);
3 新增縮放控制zoom,在右下角
var zoomControl = L.control.zoom({
position: 'bottomright'
});
map.addControl(zoomControl);
4 新增比例尺
L.control.scale().addTo(map);
5 瓦片圖層載入
L.tileLayer('http://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile/{z}/{y}/{x}',{ maxZoom: 18, reuseTiles: true }).addTo(map);
6 新增底圖(esri-leaflet外掛)
需要引入esri-leaflet.js
github:https://github.com/esri/esri-leaflet
百度盤下載:http://pan.baidu.com/s/1nt0S2JR
L.esri.basemapLayer("Streets").addTo(map);//此行可行 //ArcGIS Server Dynamic Map Service, Historic Hurricane Tracks dynLayer = L.esri.dynamicMapLayer(kaifaqu, { opacity: 1, layers: [0, 1] }); map.setView([30.60, 119.65], 9); //浙江 http://www.cnblogs.com/wangcan/
定位
function onLocationFound(e) {
var radius = e.accuracy / 2;
L.marker(e.latlng).addTo(map)
.bindPopup("You are within " + radius + " meters from this point").openPopup();
L.circle(e.latlng, radius).addTo(map);
}
map.on('locationfound', onLocationFound);
7 新增shapefile
來自(http://www.cnblogs.com/wangcan/)
需要引入shapefile.js
github:https://github.com/calvinmetcalf/shapefile-js
百度盤(shp.min.js下載後引入即可):http://pan.baidu.com/s/1hq5MuDe
//新增shapefile
function addShapeFile() {
map.setView([34.74161249883172, 18.6328125], 2);
var geo = L.geoJson({
features: []
}, {
onEachFeature: function popUp(f, l) {
//console.info(f);
var out = [];
if (f.properties) {
for (var key in f.properties) {
out.push(key + ": " + f.properties[key]);
}
l.bindPopup(out.join("<br />"));
}
}
})//.addTo(map);
//儲存到 圖層陣列
map_layers.push(geo);
//此處指向shapefile的zip檔案即可
var base = 'files/bou1_4m.zip';
shp(base).then(function(data) {
console.info(data);
geo.addData(data);
});
}