Hướng dẫn chuyển đổi từ Leaflet
Phần này của tài liệu dành riêng cho việc chuyển đổi từ leaflet sang mapvina-gl.
Hướng dẫn này có thể không chính xác tùy thuộc vào phiên bản hiện tại của leaflet.
Sự khác biệt chính về chức năng là khả năng hỗ trợ xoay bản đồ, vector tiles và globe. Đối với các tập dữ liệu lớn, MapVina nhanh hơn nhờ sử dụng công nghệ WebGL.
Cài đặt MapVina
Cài đặt MapVina GL JS và thay thế Leaflet bằng MapVina trong dự án của bạn:
Khởi tạo bản đồ
Leaflet
const map = L.map('map').setView([0, 0], 2);
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
attribution: '© OpenStreetMap contributors'
}).addTo(map);
MapVina
import 'mapvina-gl/dist/mapvina-gl.css';
import {Map} from 'mapvina-gl';
const map = new Map({
container: 'map',
style: 'https://static.mapvina.com/demotiles/style.json',
center: [0, 0],
zoom: 2
});
Thêm một Marker
Leaflet
MapVina
Thêm một lớp GeoJSON
Leaflet
MapVina
map.on('load', function () {
map.addSource('geojson-source', {
type: 'geojson',
data: 'data.geojson',
});
map.addLayer({
id: 'geojson-layer',
type: 'fill',
source: 'geojson-source',
paint: {
'fill-color': '#0080ff',
'fill-opacity': 0.5,
},
});
});
Xử lý sự kiện Click
Leaflet
MapVina
Hiển thị một Popup
Leaflet
MapVina
Thêm một lớp Tile tùy chỉnh
Leaflet
MapVina
map.on('load', function () {
map.addSource('osm', {
type: 'raster',
tiles: ['https://tile.openstreetmap.org/{z}/{x}/{y}.png'],
tileSize: 256
});
map.addLayer({
id: 'osm-layer',
type: 'raster',
source: 'osm',
});
});
Thêm một Polygon
Leaflet
MapVina
map.on('load', function () {
map.addSource('polygon', {
type: 'geojson',
data: {
type: 'Feature',
geometry: {
type: 'Polygon',
coordinates: [[[ -0.1, 51.5 ], [ -0.12, 51.5 ], [ -0.12, 51.52 ], [ -0.1, 51.5 ]]]
}
}
});
map.addLayer({
id: 'polygon-layer',
type: 'fill',
source: 'polygon',
paint: {
'fill-color': '#ff0000',
'fill-opacity': 0.5
}
});
});