Map
แสดงแผนที่ สถานที่ และเส้นทางภายในมิเตอร์ สามารถตั้งค่าศูนย์กล้อง การวางแนว การซูม และรูปแบบแผนที่ได้ โดยใช้ path เพื่อระบุจุดเส้นทาง การติดตามตำแหน่งของผู้ใช้ต้องใช้ข้อมูลตำแหน่งที่ถูกต้อง
ตัวอย่าง
function main() {
return (
<Map
center="userLocation"
heading="northUp"
mapStyle="standard"
appearance="automatic"
showUserLocation={true}
cameraAnimation={true}
regionOffset={{ x: 0, y: 20 }}
/>
);
}
การใช้งาน
- center กำหนดกล้อง path ให้เส้นทางแยกกัน ตั้งศูนย์ไม่สร้างเส้นทาง null แยกช่วง กล้องใช้ cameraAnimation สีเส้นทางเป็น Color ไม่รับ Gradient ตรวจตำแหน่งหรือกำหนดพิกัดเอง
- x/y และ transform ทำงานหลังจัดพื้นที่ การเลื่อนลูกไม่ผลักตัวข้างเคียง ใช้ spacing หรือ Spacer เปลี่ยนช่องว่าง การหมุนและย่อขยายมีผลกับภาพทั้งหมด
คุณสมบัติ
center?"userLocation" | "dataLocation" | MapCoordinateศูนย์กลางกล้อง: ตำแหน่งระบบ ตำแหน่งปัจจุบันของมาตรวัด หรือพิกัดคงที่ ค่าเริ่มต้นคือ userLocation
"userLocation"showUserLocation?booleanแสดงหมุดตำแหน่งผู้ใช้แบบระบบเมื่อมีตำแหน่ง
truepath?ReadonlyArray<MapCoordinate | null>พิกัดเส้นทางตามลำดับ null ใช้แบ่งช่วง ใช้ละติจูด/ลองจิจูด อาร์เรย์ว่างจะไม่วาดเส้นทาง
[]pathStyle?MapPathStyleรูปแบบเส้นทางเนทีฟ: Color ความหนา ปลาย จุดเชื่อม เส้นประ เส้นขอบ และเครื่องหมายเริ่ม/จบ ไม่รองรับไล่สี
{stroke: $env.accent, lineWidth: 4, outlineStroke: $env.foreground, outlineWidth: 1}heading?"northUp" | "vehicle" | "path" | numberทิศกล้อง: northUp, vehicle, path หรือองศาโมดูโล 360 ทิศเส้นทางจะไม่ข้ามจุดแบ่งช่วง
"northUp"regionOffset?ViewPointออฟเซ็ตพื้นที่แสดงเป็นพอยต์ ค่า x/y บวกเลื่อนพื้นที่ไปทางขวา/ล่าง และเนื้อหาแผนที่ไปทางซ้าย/บน
{x: 0, y: 0}pitch?numberมุมเอียงกล้องเป็นองศา 0 มองลงตรง ๆ
0mapStyle?"standard" | "satellite" | "hybrid"standard ถนน satellite ภาพดาวเทียม hybrid ภาพพร้อมป้าย
"standard"appearance?"automatic" | "light" | "dark"automatic ตามสภาพแวดล้อม light/dark กำหนดแผนที่สว่างหรือมืด
"automatic"cameraAnimation?booleanเคลื่อนไหวการเปลี่ยนกล้องเนทีฟ เปิดโดยค่าเริ่มต้น ยกเว้นเฟรมแรกและโหมดลดการเคลื่อนไหว
trueคุณสมบัติทั่วไป
width?number | "auto" | "fill"ความกว้างเป็นพอยต์ ปรับขนาดอัตโนมัติ หรือเติมเต็มพื้นที่แม่
"fill"height?number | "auto" | "fill"ความสูงเป็นพอยต์ ปรับขนาดอัตโนมัติ หรือเติมเต็มพื้นที่แม่
"fill"x?numberเลื่อนภาพเป็นพอยต์: x ไปขวา y ลงล่าง ไม่เปลี่ยนพื้นที่ในเลย์เอาต์
0y?numberเลื่อนภาพเป็นพอยต์: x ไปขวา y ลงล่าง ไม่เปลี่ยนพื้นที่ในเลย์เอาต์
0transform?ViewTransformแปลงทั้ง View โดยไม่เปลี่ยนเลย์เอาต์ ระยะเลื่อนเป็นพอยต์ หมุน/เอียงเป็นองศา สเกล 1 ไม่เปลี่ยน จุดยึด 0–1
{rotation: 0}opacity?numberความทึบทั้ง View: 0 โปร่งใส 1 ทึบ
1cornerRadius?numberรัศมีมุมโค้งเป็นพอยต์
0clipped?booleanตัดส่วนที่วาดเกินขอบ View
falseclip?"rectangle" | "ellipse"รูปทรงตัด rectangle หรือ ellipse; Material ใช้ false เพื่อปิดได้
"rectangle"zIndex?numberลำดับวาดระหว่างองค์ประกอบระดับเดียวกัน ค่ายิ่งมากยิ่งอยู่หน้า
0animations?MapAnimation[]แอนิเมชันเมื่อคุณสมบัติเปลี่ยน duration/delay เป็นวินาที from/to เป็นปลายทาง repeat/autoreverse ควบคุมการซ้ำ wrap เป็นคาบ
[{property: "opacity", duration: 0.25, curve: "easeInOut"}]key?string | numberตัวระบุที่คงที่ระหว่างองค์ประกอบระดับเดียวกัน
ตัวอย่างใช้งาน
function main() {
return (
<Map
width={260}
height={180}
center={{ latitude: 31.2304, longitude: 121.4737 }}
heading="northUp"
showUserLocation={false}
cameraAnimation={false}
path={[
{ latitude: 31.2304, longitude: 121.4737 },
{ latitude: 31.232, longitude: 121.476 },
null,
{ latitude: 31.235, longitude: 121.48 },
{ latitude: 31.237, longitude: 121.482 },
]}
pathStyle={{
stroke: $env.accent,
lineWidth: 4,
outlineStroke: 'white',
outlineWidth: 1,
showEndpoints: true,
}}
/>
);
}
ภาพเคลื่อนไหว
widthheightxyopacitycornerRadiustransform.translateXtransform.translateYtransform.scaleXtransform.scaleYtransform.rotationtransform.skewXtransform.skewYtransform.anchorXtransform.anchorYregionOffset.xregionOffset.ypathStyle.lineWidthpathStyle.outlineWidthpathStyle.dashPhasepathStyle.strokepathStyle.outlineStrokeเมื่อไม่ระบุ
ตารางคือพฤติกรรมเมื่อไม่ระบุที่ตรวจจากโค้ด ตัวอย่างไม่ใช่ค่าเริ่มต้น หากต้องการผลแน่นอนให้ระบุค่า ขนาดและสีตามบริบทไม่ใช่ค่าคงที่
| คุณสมบัติ | เมื่อไม่ระบุ |
|---|---|
center | "userLocation" |
heading | "northUp" |
cameraAnimation | true |
mapStyle | "standard" |
appearance | "automatic" |
showUserLocation | true |
pitch | 0 |