เอกสาร / การตั้งค่า / React / Longdo
การตั้งค่า Longdo
ขั้นตอนการใช้ Longdo Map บนเว็บผ่าน MapConductor คือผู้ให้บริการที่เชี่ยวชาญด้านแผนที่ประเทศไทยและครอบ Longdo Map JS API3 ไว้
PACKAGE
react-for-longdo
API KEY
จำเป็น
CSS
ไม่จำเป็น
REACT NATIVE
ไม่มี
ก่อนเริ่ม
Node.js 18 ขึ้นไป
คีย์ API ที่ออกโดย Longdo Map Console
STEP 01
ติดตั้ง
Longdo Map JS API3 จะโหลดแพ็กเกจแบบไดนามิกด้วยคีย์ ไม่จำเป็นต้องเขียนแท็ก script
terminalnpm
npm install @mapconductor/js-sdk-core @mapconductor/js-sdk-react \
@mapconductor/react-for-longdoSTEP 02
ส่งคีย์ API ไปยัง state hook
คีย์จะถูกลงทะเบียนโดยผูกกับโดเมน หากปล่อยให้เป็นสตริงว่าง แผนที่จะไม่ถูกโหลด
LongdoMap.tsxTypeScript · React
const state = useLongdoViewState({
apiKey: import.meta.env.VITE_LONGDO,
mapDesignType: LongdoDesign.Normal,
cameraPosition: createMapCameraPosition({ position: BANGKOK, zoom: 12 }),
});ข้อควรระวัง
ส่งคีย์ผ่านตัวแปรสภาพแวดล้อมขณะบิลด์ (สำหรับ Vite ใช้ import.meta.env.VITE_*) และอย่าใส่ไว้ในการจัดการซอร์สโค้ด เนื่องจากคีย์จะถูกส่งไปยังฟรอนต์เอนด์ คุณต้องตั้งข้อจำกัดการอ้างอิงและข้อจำกัดโดเมนเพื่อป้องกันความเสียหายหากคีย์รั่วไหลออกสู่สาธารณะ
ตรวจสอบ
สิ่งที่ควรเห็น
หากแผนที่ปรากฏขึ้นโดยมีกรุงเทพฯ เป็นศูนย์กลาง ถือว่าเสร็จสิ้นแล้ว
LongdoMap.tsxTypeScript · React
import { useState } from 'react';
import { createGeoPoint, createMapCameraPosition, createMarkerState } from '@mapconductor/js-sdk-core';
import { Marker } from '@mapconductor/js-sdk-react';
import { LongdoDesign, LongdoMapView2D, useLongdoViewState } from '@mapconductor/react-for-longdo';
const BANGKOK = createGeoPoint({ latitude: 13.7563, longitude: 100.5018 });
export function LongdoMap() {
const state = useLongdoViewState({
apiKey: import.meta.env.VITE_LONGDO,
mapDesignType: LongdoDesign.Normal,
cameraPosition: createMapCameraPosition({ position: BANGKOK, zoom: 12 }),
});
const [markerState] = useState(() => createMarkerState({ id: 'bkk', position: BANGKOK }));
return (
<LongdoMapView2D state={state} style={{ height: 480 }}>
<Marker state={markerState} />
</LongdoMapView2D>
);
}ดีไซน์แผนที่
LongdoDesign รองรับเลเยอร์ฐานของ Longdo
LongdoDesign
Notes
Normal / Easy / Political
สไตล์มาตรฐาน
Pastel / PastelGray / Light / Gray
สไตล์ซีด
Night / Dark / Hard
สีเข้มและคอนทราสต์สูง
Satellite / Hybrid
ภาพดาวเทียมและไฮบริด
Osm
ฐาน OpenStreetMap
การแก้ปัญหา
แผนที่ไม่ปรากฏ
- ตรวจสอบว่า apiKey ไม่ใช่สตริงว่าง
- ตรวจสอบในคอนโซลว่าคีย์ผูกกับโดเมนที่ให้บริการหรือไม่
แผนที่ถูกเริ่มต้นสองครั้งเฉพาะในขณะพัฒนา
- React StrictMode จะรัน effect สองครั้ง ผู้ให้บริการแต่ละรายตรวจพบสิ่งนี้และจะทิ้งตัวใดตัวหนึ่ง ดังนั้นจึงไม่จำเป็นต้องปิด StrictMode
ถัดไป
LongdoMapView เป็น 3D, LongdoMapView2D เป็น 2D ทั้งสองแบ่งปันออบเจ็กต์สถานะเดียวกัน