ไทล์แผนที่เวกเตอร์จากข้อมูล OpenStreetMap ใช้กับ MapLibre GL หรือ Leaflet ได้ทันที ไม่ต้องใช้ API Key ไม่มีโควตา และไม่มีค่าใช้จ่ายที่คาดไม่ถึง
ผู้ให้บริการไทล์แผนที่ส่วนใหญ่มักเริ่มด้วยเครดิตฟรี แต่เมื่อมีผู้ใช้งานมากขึ้น การคิดเงินตามปริมาณก็เปลี่ยนโปรเจ็กต์เล็ก ๆ ให้มีค่าใช้จ่ายจริง ทั้งตัวเลขการใช้งานที่ดูยาก ค่าบริการที่เพิ่มทุกครั้งที่โหลดแผนที่ และหน้าราคาที่ต้องใช้ตารางคำนวณ Google Maps กับ Mapbox ก็คิดเงินแบบนี้ สิ่งที่เคยดูเหมือนฟรีจึงอาจกลายเป็นต้นทุนที่คุณไม่ต้องการ
LFMaps ต่างออกไป ฟรีก็คือฟรี ไม่มีค่าใช้จ่ายแอบแฝง ไม่มีเพดาน และไม่มีใบแจ้งหนี้
ทุกอย่างที่ต้องใช้เพื่อแสดงแผนที่ ครบเท่าที่จำเป็น
ใส่ URL ของไทล์แล้วเริ่มได้เลย ไม่ต้องสมัครสมาชิก ไม่ต้องมี access token หรือหน้าแดชบอร์ด
ไม่มีโควตา ไม่มีเพดานแฝง และไม่คิดเงินต่อการโหลดแผนที่ ใช้ได้ตามต้องการ
ไม่มีค่าใช้จ่ายไม่ว่าจะมีคนดูแผนที่สิบครั้งหรือสิบล้านครั้ง
เราไม่ติดตามผู้เข้าชมและไม่ใช้คุกกี้ นโยบายความเป็นส่วนตัวของคุณจึงไม่ต้องยาวขึ้น
ทำงานได้ดีที่สุดกับ MapLibre GL และใช้กับ Leaflet หรือ React ได้ด้วย
<link href="https://unpkg.com/maplibre-gl@6.11.2/dist/maplibre-gl.css" rel="stylesheet" />
<script type="importmap">
{ "imports": { "maplibre-gl": "https://unpkg.com/maplibre-gl@6.11.2/dist/maplibre-gl.mjs" } }
</script>
MapLibre GL v6 แจกจ่ายเป็น ES modules เท่านั้น ตัวอย่างเหล่านี้จึงโหลดผ่าน import map และ module script
npm i maplibre-gl@^6
จากนั้นนำเข้าใน JavaScript ของคุณ:
import * as maplibregl from 'maplibre-gl'
import 'maplibre-gl/dist/maplibre-gl.css'
import workerUrl from 'maplibre-gl/dist/maplibre-gl-worker.mjs?worker&url'
maplibregl.setWorkerUrl(workerUrl)
เมื่อใช้ในบันเดิล MapLibre จะหา worker เองไม่พบ ตัวอย่างนี้ใช้รูปแบบของ Vite; หากใช้ webpack หรือเครื่องมืออื่น โปรดดู คู่มือการติดตั้ง MapLibre.
<div id="map" style="width: 100%; height: 500px"></div>
<script type="module">
import * as maplibregl from 'maplibre-gl'
const map = new maplibregl.Map({
style: 'https://data.lfmaps.fr/styles/bright',
center: [6.1844, 48.6937],
zoom: 12,
container: 'map',
})
</script>
Core Web Vitals ที่ดีขึ้นมักช่วยให้อันดับการค้นหาดีขึ้นด้วย
ใช้ตัวโหลดนี้เพื่อลดภาระตอนเปิดหน้าเว็บครั้งแรก:
// ตัวอย่างสำหรับ Vite; หากใช้บันเดลอร์อื่น โปรดดูคู่มือการติดตั้ง
import workerUrl from 'maplibre-gl/dist/maplibre-gl-worker.mjs?worker&url';
let maplibrePromise = null;
let cssLoaded = false;
/**
* โหลด MapLibre GL และ CSS เมื่อจำเป็น
* @returns {Promise} โมดูล MapLibre GL
*/
async function loadMapLibre() {
if (!maplibrePromise) {
maplibrePromise = Promise.all([
import('maplibre-gl'),
loadMapLibreCSS()
]).then(([module]) => {
module.setWorkerUrl(workerUrl);
return module;
});
}
return maplibrePromise;
}
/**
* โหลด CSS ของ MapLibre GL แบบไดนามิก
*/
async function loadMapLibreCSS() {
if (!cssLoaded) {
await import('maplibre-gl/dist/maplibre-gl.css');
cssLoaded = true;
}
}
/**
* คลาสสำหรับโหลด MapLibre GL เมื่อจำเป็น
* มี API คล้าย maplibregl พร้อมการโหลดเมื่อจำเป็น
*/
export class MapLibreLoader {
constructor() {
this.maplibregl = null;
}
/**
* สร้างแผนที่ใหม่ โดยโหลด MapLibre GL เมื่อจำเป็น
* @param {Object} options - ตัวเลือกการตั้งค่าแผนที่
* @returns {Promise} อินสแตนซ์ Map ของ MapLibre GL
*/
async createMap(options) {
this.maplibregl = await loadMapLibre();
return new this.maplibregl.Map(options);
}
/**
* เรียกใช้ไลบรารี MapLibre GL และโหลดเมื่อจำเป็น
* @returns {Promise} ไลบรารี MapLibre GL
*/
async getLibrary() {
this.maplibregl = await loadMapLibre();
return this.maplibregl;
}
}
export default new MapLibreLoader();
ตัวอย่างการใช้งาน:
import MapLibreLoader from './maplibre-loader.js';
// สร้างแผนที่เมื่อจำเป็นเท่านั้น (เช่น เมื่อเลื่อนมาถึงหรือผู้ใช้โต้ตอบ)
async function initMap() {
const map = await MapLibreLoader.createMap({
style: 'https://data.lfmaps.fr/styles/bright',
center: [6.1844, 48.6937],
zoom: 12,
container: 'map',
});
// เพิ่มปุ่มควบคุม หมุดแผนที่ และองค์ประกอบอื่น ๆ
const maplibregl = await MapLibreLoader.getLibrary();
map.addControl(new maplibregl.NavigationControl());
}
หากต้องการความสามารถขั้นสูงและ API ฉบับเต็ม โปรดดู เอกสาร MapLibre GL JS
Leaflet อ่านไทล์เวกเตอร์เองไม่ได้ จึงต้องใช้ร่วมกับปลั๊กอิน maplibre-gl-leaflet:
<link href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" rel="stylesheet" />
<script type="importmap">
{ "imports": {
"leaflet": "https://unpkg.com/leaflet@1.9.4/dist/leaflet-src.esm.js",
"maplibre-gl": "https://unpkg.com/maplibre-gl@6.11.2/dist/maplibre-gl.mjs"
} }
</script>
<script type="module">
import * as L from 'leaflet'
import { maplibreGL } from 'https://unpkg.com/@maplibre/maplibre-gl-leaflet@0.1.4/dist/leaflet-maplibre-gl.mjs'
const map = L.map('map').setView([48.6937, 6.1844], 12)
maplibreGL({
style: 'https://data.lfmaps.fr/styles/bright',
}).addTo(map)
</script>
ปลั๊กอินนี้รองรับ Leaflet 1.x คุณยังได้ใช้ไทล์ฟรีโดยไม่มีค่าบริการ
npm i react-map-gl maplibre-gl@^6
import Map from 'react-map-gl/maplibre'
import { setWorkerUrl } from 'maplibre-gl'
import workerUrl from 'maplibre-gl/dist/maplibre-gl-worker.mjs?worker&url'
import 'maplibre-gl/dist/maplibre-gl.css'
setWorkerUrl(workerUrl)
export default function MyMap() {
return (
<Map
initialViewState={{ longitude: 6.1844, latitude: 48.6937, zoom: 12 }}
style={{ width: '100%', height: 500 }}
mapStyle="https://data.lfmaps.fr/styles/bright"
/>
)
}
ไม่ต้องใช้ mapbox-gl หรือ access token เพราะ react-map-gl เชื่อมต่อกับ MapLibre GL ได้โดยตรง
https://data.lfmaps.fr/styles/bright
https://data.lfmaps.fr/styles/positron
https://data.lfmaps.fr/styles/liberty
ส่งไทล์ผ่าน CDN แผนที่จึงแสดงได้ในพริบตา
พร้อมให้บริการ 99.9% ของเวลา
ข้อมูล OpenStreetMap ครอบคลุมทั่วโลก
เขียน MapLibre GL หรือ Leaflet เพียงไม่กี่บรรทัดก็แสดงแผนที่ได้
แสดงแผนที่บนหน้าเว็บได้เหมือนกัน แต่ค่าใช้จ่ายปลายเดือนต่างกันมาก
ข้อจำกัดที่ควรรู้: LFMaps ให้บริการเฉพาะไทล์แผนที่ ไม่มีบริการค้นหาพิกัด วางเส้นทาง หรือบอกทางทีละขั้น
จริง ไม่มีแพ็กเกจเสียเงิน ไม่ต้องใช้บัตรเครดิต และไม่มีบิลตามปริมาณการใช้งาน ไม่ว่าคุณจะมีผู้ชมมากเพียงใด LFMaps เป็นโปรเจ็กต์เสริมที่ได้รับการสนับสนุนแบบเดียวกับเครื่องมือฟรีอื่น ๆ ในหน้านี้
ไม่ต้อง ไม่ต้องสมัครสมาชิกหรือเปลี่ยน token เพียงตั้งค่ารูปแบบแผนที่ให้ชี้ไปที่ URL ของ LFMaps ก็ใช้งานได้
ไม่มีโควตาหรือข้อจำกัดความเร็วแบบตายตัว เราขอเพียงอย่าดึงไทล์ทั้งชุดไปเก็บจำนวนมาก การใช้แผนที่ตามปกติบนเว็บไซต์หรือแอปทำได้
ได้ MapLibre GL แสดงไทล์เวกเตอร์ได้โดยตรงและเป็นตัวที่เราแนะนำ ส่วน Leaflet ก็ใช้ได้เมื่อเพิ่มปลั๊กอิน maplibre-gl-leaflet
มาจาก OpenStreetMap และให้บริการผ่าน OpenFreeMap ข้อมูลนี้สร้างโดยชุมชน จึงเปิดให้ใช้ได้ฟรี
ได้ รวมถึงโปรเจ็กต์เชิงพาณิชย์ เพียงแสดงเครดิต OpenStreetMap ให้เห็นบนแผนที่ นั่นคือข้อกำหนดเดียว
ไม่ เราไม่เก็บข้อมูลส่วนบุคคลและไม่ตั้งคุกกี้ในการขอไทล์ การเพิ่มแผนที่จึงไม่ทำให้ต้องเพิ่มข้อความในนโยบายความเป็นส่วนตัว
บริการเหล่านั้นให้ใช้ฟรีในช่วงแรก แล้วคิดเงินตามจำนวนครั้งที่โหลดแผนที่เมื่อใช้งานมากขึ้น LFMaps ไม่คิดค่าบริการตามการใช้งาน: ดูแผนที่สิบครั้งหรือสิบล้านครั้งก็ฟรี
สร้างชุดสีที่เข้ากัน
เครื่องมือสร้างรหัสผ่านฟรี
ย่อลิงก์ด้วย URL ที่กำหนดเองได้ฟรี
สร้างคิวอาร์โค้ดที่แก้ไขภายหลังได้
เตรียมรูปภาพสำหรับโพสต์บนโซเชียล
จัดรูปแบบโค้ดที่ย่อแล้วให้อ่านง่าย
สร้างไฟล์ .gitignore ได้ง่าย ๆ
ระบบจองโต๊ะร้านอาหาร
ซอฟต์แวร์จองคิวสำหรับร้านทำผม
เครื่องมือสร้าง favicon ฟรี
สร้างป้ายแสดงสารก่อภูมิแพ้สำหรับร้านอาหารฟรี
แชร์ Markdown ได้อย่างสวยงาม
นำเมนูร้านอาหารขึ้นออนไลน์ได้ฟรี