Узнайте, как быстро и легко добавить интерактивную карту с помощью Maps SDK и JavaScript.

ДОБАВЛЕНИЕ КАРТ TOMTOM В ПРИЛОЖЕНИЕ SVELTE
Добавление карт в веб-приложение значительно улучшает взаимодействие с пользователем. Карты помогают вашему пользователю найти местоположение, спланировать маршрут, избежать пробок, увидеть ход маршрута, визуализировать границы и многое другое. Они становятся все более популярными функциями веб-приложений из-за роста количества встроенных сервисов определения местоположения.
Хотя карты могут показаться сложными, их на удивление легко интегрировать в веб-приложения с помощью клиентских библиотек от TomTom. Фронтенд-разработчикам нужны эффективные и действенные варианты. Карты TomTom упрощают добавление интерактивных карт в приложения Svelte, что делает их идеальным выбором.
В этой статье мы покажем, как добавить карты TomTom в веб-приложение Svelte. Мы рассмотрим, как установить библиотеку карт SDK, инициализировать ее и управлять картой. Чтобы следовать, вы должны знать JavaScript и быть знакомым с Svelte.
НАСТРОЙКА
Чтобы создать приложение Svelte, сначала убедитесь, что на вашем компьютере установлен Node.js. Вы можете проверить наличие Node.js, введя в терминал следующую команду:
node -v
Если нет, просто перейдите на сайт Node.js, чтобы загрузить последнюю версию.
Кроме того, вам нужно установить библиотеку degit, чтобы вы могли клонировать шаблон Svelte:
npm install -g degit
Когда это закончится, мы можем начать работу с нашим приложением Svelte, создав пустую папку и клонировав шаблон в наш проект с именем «tomtom»:
npx degit sveltejs/template tomtom
Затем мы переходим в папку нашего проекта на терминале:
cd tomtom
Теперь, когда мы его настроили, мы можем установить зависимости нашего проекта:
npm install
Затем мы запускаем приложение Svelte с помощью:
npm run dev
УСТАНОВКА БИБЛИОТЕКИ ТОМТОМ
Чтобы использовать службы поиска и маршрутизации TomTom, сначала необходимо установить TomTom Maps SDK. Используйте эту команду для установки этой библиотеки:
npm i @tomtom-international/web-sdk-maps
Чтобы использовать сервисы в своем приложении, зарегистрируйтесь как разработчик TomTom. Вы ежедневно получаете тысячи бесплатных запросов, даже для коммерческих приложений. Вы можете просто платить по мере роста и расширения вашего приложения.
При регистрации учетной записи разработчика вы получаете API-ключ. Обратите внимание на ключ API, потому что мы скоро к нему вернемся.
СОЗДАНИЕ ПРИЛОЖЕНИЯ
Мы создаем приложение, которое инициализируется картой в реальном времени. Затем на этой карте мы можем установить широту и долготу начального и конечного местоположения. Карта приблизится к этому месту, проведя линию между двумя точками. Вы можете проверить демонстрацию на CodeSandbox.

Во-первых, чтобы начать создавать наше приложение, давайте импортируем библиотеку и ее таблицу стилей по умолчанию в наш компонент, добавив их в тег скрипта. Нам также нужно импортировать onMount в наш компонент, чтобы мы могли инициализировать нашу карту, когда компонент монтируется в объектный модуль документа (DOM):
import tt from "@tomtom-international/web-sdk-maps";
import '@tomtom-international/web-sdk-maps/dist/maps.css'
import { onMount } from "svelte";
Затем нам нужно добавить переменные, которые мы будем использовать в приложении. Переменная масштабирования выбирает уровень масштабирования, который мы хотим видеть на карте. Долгота и широта — это начальные долгота и широта, которые отображаются на карте при загрузке.
import tt from "@tomtom-international/web-sdk-maps";
import '@tomtom-international/web-sdk-maps/dist/maps.css'
import { onMount } from "svelte";
Мы свяжем эти переменные непосредственно с их элементом ‹input/›, чтобы наше приложение всегда синхронизировалось, когда мы что-либо изменяем.
Затем в нашей onMount() мы запустим саму карту TomTom и назначим ее переменной карты. Кроме того, мы устанавливаем контейнер для хранения карты в пользовательском интерфейсе (UI) как mapElement.
Аналогичным образом мы используем переменные долготы, широты и масштабирования. Переменная center содержит координаты по умолчанию, которые карта показывает пользователю после загрузки страницы.
onMount(() => {
map = tt.map({
key: "<Your API Key",
container: mapElement,
stylesVisibility: {
trafficIncidents: true,
trafficFlow: true
},
center: [longitude, latitude],
zoom: zoom
});
});
В конечном итоге мы отобразим эти элементы в пользовательском интерфейсе. Элемент div, содержащий карту, отображаемую в пользовательском интерфейсе, привязывается непосредственно к элементу mapElement, который мы объявили и назначили ранее в onMount.
Также есть пара тегов ‹input/› для каждого из разделов Start Location и Destination, причем четыре тега input привязаны к переменным. Затем есть один дополнительный тег ‹input/›, который мы аналогичным образом используем для переменной масштабирования.
Мы называем это двусторонней привязкой данных в Svelte. Это позволяет пользователю обмениваться данными в двух направлениях внутри приложения. Наше приложение передает данные непосредственно из шаблонов пользовательского интерфейса в бизнес-логику и наоборот.
Эта привязка данных обеспечивает бесперебойную автоматическую синхронизацию данных между управляемым пользователем интерфейсом и логикой. Привязка данных может одновременно обрабатывать установку значения элемента и прослушивание событий изменения элемента в нашем проекте. Именно этот метод делает Svelte реактивным.
Теперь вернемся к нашему проекту. В приведенном ниже коде мы объявляем переменные внутри логики, и когда значение входных элементов изменяется, оно немедленно синхронизируется с переменными.
Этот метод упрощает обмен данными внутри нашего компонента.
<main>
<div class="map" bind:this={mapElement}></div>
<div>
<h3>Start Location</h3>
<input placeholder="latitude" bind:value={startLatitude}/>
<input placeholder="latitude" bind:value={startLongitude}/>
</div>
<div>
<h3>Destination</h3>
<input placeholder="latitude" bind:value={destinationLatitude}/>
<input placeholder="latitude" bind:value={destinationLongitude}/>
</div>
<input placeholder="Zoom number" type="number" bind:value={zoom}/>
<button on:click={showRouteLayer}> See route</button>
</main>
Затем мы добавляем кнопку, которая запускает функцию showRouteLayer, когда пользователь щелкает ее. Эта функция принимает введенные пользователем данные, рисует линию между двумя местоположениями и увеличивает масштаб этих недавно выбранных местоположений:
const showRouteLayer = () => {
map.addLayer({
id: "123",
type: "line",
source: {
type: "geojson",
data: {
type: "FeatureCollection",
features: [
{
type: "Feature",
geometry: {
type: "LineString",
properties: {},
coordinates: [
[parseFloat(startLatitude), parseFloat(startLongitude)],
[parseFloat(destinationLatitude), parseFloat(destinationLongitude)]
]
}
}
]
}
},
layout: {
"line-cap": "round",
"line-join": "round"
},
paint: {
"line-color": "#ff0000",
"line-width": 2
}
});
map.setCenter([parseFloat(startLatitude), parseFloat(startLongitude)]);
map.setZoom(zoom);
};
Здесь мы используем стандартный метод addLayer TomTom для получения координат, которые мы установили ранее. Затем он рисует линию между двумя координатами.
Мы также устанавливаем ширину и цвет линии. Затем пользовательский интерфейс центрирует карту по координатам startLatitude и startLongitude и увеличивает масштаб. Такое центрирование и масштабирование помогают создать удобный пользовательский интерфейс.
СЛЕДУЮЩИЕ ШАГИ
Поздравляем, вы успешно создали свое первое приложение Svelte со встроенными картами TomTom! Добавление карты в ваше приложение на первый взгляд может показаться сложным и сложным, но использование карт TomTom упрощает весь процесс. TomTom позволяет вашим пользователям беспрепятственно работать с вашими приложениями с привязкой к местоположению.
TomTom помогает вашим пользователям лучше визуализировать карты и взаимодействовать с ними. Карты TomTom используют текущие координаты пользователя, чтобы определить, где он находится. Кроме того, пользователи могут добавить координаты своего пункта назначения, чтобы мы могли рассчитать расстояние и навигационный маршрут, чтобы добраться до пункта назначения.
Изучите Документацию TomTom и ознакомьтесь со всеми картографическими функциями, которые вы можете создать с ее помощью: тепловые карты, анимация, поток трафика, поиск и многое другое. Портал разработчиков предлагает несколько примеров кода для начала работы.
Посетите портал для разработчиков, зарегистрируйтесь бесплатно и получите ключ API, чтобы приступить к созданию своего картографического приложения уже сегодня.
Эта статья изначально была опубликована на странице developer.tomtom.com/blog.