เอกสาร / การตั้งค่า / React / Azure Maps
การตั้งค่า Azure Maps
ขั้นตอนการใช้ Azure Maps บนเว็บผ่าน MapConductor รับรองความถูกต้องด้วยคีย์การสมัครใช้งานของ Azure
PACKAGE
react-for-azuremaps
API KEY
คีย์การสมัครใช้งาน
CSS
จำเป็น
REACT NATIVE
ไม่มี
ก่อนเริ่ม
Node.js 18 ขึ้นไป
บัญชีและคีย์การสมัครใช้งานของ Azure Maps
STEP 01
ติดตั้ง
azure-maps-control รวมอยู่ในแพ็กเกจ
terminalnpm
npm install @mapconductor/js-sdk-core @mapconductor/js-sdk-react \
@mapconductor/react-for-azuremapsSTEP 02
โหลดสไตล์ชีต
โหลดเพียงครั้งเดียวที่จุดเริ่มต้นของแอป หากลืมจะทำให้ตำแหน่งแผนที่และรูปลักษณ์ของตัวควบคุมเสียหาย
main.tsxTypeScript
import '@mapconductor/react-for-azuremaps/style.css';
STEP 03
ส่งคีย์การสมัครใช้งาน
ส่งคีย์ไปยัง subscriptionKey ของ state hook หากว่างเปล่า แผนที่จะไม่ถูกเริ่มต้น
AzureMap.tsxTypeScript · React
const state = useAzureMapsViewState({
subscriptionKey: import.meta.env.VITE_AZURE_MAPS_SUBSCRIPTION_KEY ?? '',
mapDesignType: AzureMapsDesign.Road,
cameraPosition: createMapCameraPosition({ position: TOKYO, zoom: 12 }),
});ข้อควรระวัง
ส่งคีย์ผ่านตัวแปรสภาพแวดล้อมในเวลาบิลด์ (ใน Vite คือ import.meta.env.VITE_*) และอย่าใส่ไว้ในการจัดการซอร์สโค้ด เนื่องจากส่งไปยังฟรอนต์เอนด์ คุณต้องตั้งข้อจำกัด referrer หรือโดเมนเพื่อป้องกันความเสียหายหากคีย์ถูกเปิดเผย
ตรวจสอบ
สิ่งที่ควรเห็น
หากแผนที่ Azure Maps ปรากฏขึ้น ถือว่าเสร็จสิ้น
AzureMap.tsxTypeScript · React
import { useState } from 'react';
import { createGeoPoint, createMapCameraPosition, createMarkerState } from '@mapconductor/js-sdk-core';
import { Marker } from '@mapconductor/js-sdk-react';
import { AzureMapsDesign, AzureMapsMapView, useAzureMapsViewState } from '@mapconductor/react-for-azuremaps';
import '@mapconductor/react-for-azuremaps/style.css';
const TOKYO = createGeoPoint({ latitude: 35.6812, longitude: 139.7671 });
export function AzureMap() {
const state = useAzureMapsViewState({
subscriptionKey: import.meta.env.VITE_AZURE_MAPS_SUBSCRIPTION_KEY ?? '',
mapDesignType: AzureMapsDesign.Road,
cameraPosition: createMapCameraPosition({ position: TOKYO, zoom: 12 }),
});
const [markerState] = useState(() => createMarkerState({ id: 'tokyo', position: TOKYO }));
return (
<AzureMapsMapView state={state} style={{ height: 480 }}>
<Marker state={markerState} />
</AzureMapsMapView>
);
}ดีไซน์แผนที่
AzureMapsDesign รองรับสไตล์ของ Azure Maps
AzureMapsDesign
Notes
Road / RoadShadedRelief
แผนที่ถนนมาตรฐานพร้อมเงาภูมิประเทศ
Satellite / SatelliteRoadLabels
ภาพดาวเทียมพร้อมป้ายกำกับ
GrayscaleLight / GrayscaleDark
สำหรับฐานแผนที่ที่ใช้แสดงข้อมูล
Night
สไตล์กลางคืน
HighContrastLight / HighContrastDark
คอนทราสต์สูง
Blank / BlankAccessible
ไม่มีแผนที่ฐาน
การแก้ปัญหา
แผนที่ไม่ปรากฏ
- ตรวจสอบว่า subscriptionKey ไม่ใช่สตริงว่าง
- ตรวจสอบใน Azure Portal ว่าคีย์มีความถูกต้องหรือไม่
แผนที่ถูกเริ่มต้นสองครั้งในขณะพัฒนา
- React StrictMode ทำงาน effect สองครั้ง ผู้ให้บริการแต่ละรายตรวจจับสิ่งนี้และทำลายอีกรายการหนึ่ง ดังนั้นคุณไม่จำเป็นต้องปิด StrictMode
ถัดไป
คีย์การสมัครใช้งานจะถูกส่งไปยังเบราว์เซอร์ ในการใช้งานจริง คุณควรจำกัดขอบเขตการใช้งานหรือพิจารณาวิธีการรับรองความถูกต้องของ Azure