AUTOCOMPLETE
$ npm i @mapslibvn/web
Bản đồ Việt Nam cho ứng dụng của bạn
API bản đồ, tìm kiếm địa điểm và dẫn đường dựng trên dữ liệu mở. Trả tiền bằng VND theo gói cố định, biết trước hoá đơn.
Bản dùng thử 2.000 lượt Places trong 30 ngày, không cần thẻ.
Bản đồ tương tác

Bản đồ thật do MapsLibVN phục vụ.Mở trang thử đầy đủ →
Có sẵn những gì
Bảy mảng đang chạy thật, không phải lộ trình
Rẻ hơn Google
37–68%
GOOGLE MAPS PLATFORM
164 loại địa điểm
164
13 nhóm · 2 nguồn mở
PRECISION
Geocode nói thật
{ "precision": "rooftop",
"confidence": 0.94,
"lat": 10.7797, "lng": 106.699 }DIRECTIONS
Dẫn đường
- Xe máy
- Ô tô
- Đi bộ
MATRIX
Giao hàng & vận tải
SDK
Bốn SDK, một API
- @mapslibvn/core
- @mapslibvn/web
- @mapslibvn/react
- @mapslibvn/react-native
Bốn cách nhúng
Chọn cách hợp với dự án của bạn. Cả bốn dùng chung một khoá API và một hợp đồng dữ liệu.
<link rel="stylesheet" href="https://mapslibvn-docs.pages.dev/sdk/mapslibvn.css" />
<script src="https://mapslibvn-docs.pages.dev/sdk/mapslibvn.umd.js"></script>
<div id="map" style="height:400px"></div>
<script>
const map = MapsLibVN.createMap({
container: 'map',
apiKey: 'mlv_live_…',
apiBase: 'https://api.ai-solutions.io.vn',
center: [106.7, 10.776],
zoom: 13,
});
</script>Không cần build hay npm. Bản UMD đã gộp sẵn maplibre-gl và pmtiles.
npm install @mapslibvn/web maplibre-gl
import 'maplibre-gl/dist/maplibre-gl.css';
import * as maplibregl from 'maplibre-gl';
import { createMap } from '@mapslibvn/web';
const map = createMap(
{
container: 'map',
apiKey: 'mlv_live_…',
apiBase: 'https://api.ai-solutions.io.vn',
center: [106.7, 10.776],
zoom: 13,
},
{ maplibre: maplibregl },
);maplibre-gl là peer dependency, bạn tự cài và truyền vào. Khi build còn phải trỏ worker của MapLibre về thư mục tĩnh của bạn.
npm install @mapslibvn/react maplibre-gl
import 'maplibre-gl/dist/maplibre-gl.css';
import { MapsLibVNMap, Marker } from '@mapslibvn/react';
export default function BanDo() {
return (
<MapsLibVNMap
apiKey="mlv_live_…"
apiBase="https://api.ai-solutions.io.vn"
center={[106.7, 10.776]}
zoom={13}
containerStyle={{ height: 400 }}
>
<Marker lng={106.6981} lat={10.7725} popupHtml="<b>Chợ Bến Thành</b>" />
</MapsLibVNMap>
);
}Gói tự import maplibre-gl nên không cần truyền deps, nhưng vẫn cần bước worker của MapLibre khi build.
npx expo install @maplibre/maplibre-react-native expo-application
npm install @mapslibvn/react-native
import { MapsLibVNMap } from '@mapslibvn/react-native';
export default function ManBanDo() {
return (
<MapsLibVNMap
apiKey="mlv_live_…"
apiBase="https://api.ai-solutions.io.vn"
center={[106.7, 10.776]}
zoom={13}
/>
);
}Dùng khoá loại mobile. Cần New Architecture và không chạy trên Expo Go, phải build native.
Yêu cầu từng môi trường, bước worker của MapLibre cho bundler và bảng lỗi hay gặp nằm ởtrang Cài đặt.
Bảng giá
Giá theo lượt gọi, không theo đầu người
Bắt đầu bằng bản dùng thử 2.000 lượt Places trong 30 ngày, không cần thẻ thanh toán.
Dùng thử
0đ / 30 ngày
không cần thẻ thanh toán
2.000 lượt Places trong 30 ngày
Dùng thử miễn phíStarter
650.000đ / tháng
tham chiếu $25
30.000 lượt Places mỗi tháng
Chọn StarterĐược chọn nhiều nhất
Professional
2.600.000đ / tháng
tham chiếu $100
100.000 lượt Places mỗi tháng
Chọn ProfessionalBusiness
10.400.000đ / tháng
tham chiếu $400
400.000 lượt Places mỗi tháng
Chọn Business- Dữ liệu mở. không có phí bản quyền dữ liệu chuyển vào giá bán.
- PMTiles trên CDN. trình duyệt đọc thẳng, không cụm máy chủ tile phải nuôi.
- Tính theo lượt gọi. không theo số người dùng cuối hay số lần mở ứng dụng.
FAQ
Câu hỏi thường gặp
Một lượt gọi API được tính thế nào?
Chỉ request thành công mới bị trừ lượt, kể cả khi kết quả rỗng hoặc lấy từ cache. Lỗi 4xx và 5xx không bị tính tiền.
Cấp thêm khoá API thì có thêm hạn mức không?
Không. Hạn mức tính theo thuê bao, mọi khoá của cùng một tổ chức dùng chung một hạn mức. Cấp nhiều khoá là để tách môi trường và thu hồi riêng khi lộ.
Có xuất hoá đơn VAT không?
Giai đoạn này chỉ có biên nhận thanh toán, chưa có hoá đơn điện tử VAT. Nếu bạn cần hoá đơn để hạch toán, hãy liên hệ trước khi mua.
Dữ liệu bản đồ lấy từ đâu?
Từ hai nguồn mở: OpenStreetMap theo giấy phép ODbL và Foursquare OS Places theo Apache-2.0. Ứng dụng của bạn phải giữ phần ghi nguồn mà SDK hiển thị sẵn.
Hết hạn mức thì chuyện gì xảy ra?
API trả lỗi có cấu trúc nói rõ nhóm nào đã hết và khi nào hồi, để ứng dụng xử lý tử tế. Bạn mua thêm lượt theo khối 1.000 hoặc nâng gói.
Thử trong năm phút
Đăng ký, tự lấy khoá API và gọi request đầu tiên mà không cần chờ ai duyệt.