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, не градиенты. Проверьте позицию или задайте координаты.
- 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 |