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 单独提供路线;设置中心不会自动生成路线。path 中的 null 断开路段。相机动画使用 cameraAnimation;路线颜色只支持 Color,不支持渐变。没有有效位置时,先检查位置数据或指定固定坐标。
- 布局先决定占位,再应用 x/y 和 transform。把一个子 View 右移 20 点,不会把后面的兄弟推开;要改变间隔用 spacing 或 Spacer。旋转、缩放会作用于已经绘制好的整个 View。
属性
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同级 View 的绘制顺序,数值越大越靠前。
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 |