API статических изображений (Static Image API) в экосистеме HERE Maps предназначен для генерации готовых изображений карт без необходимости загружать интерактивный картографический интерфейс в браузер. В ответ на HTTP-запрос сервис возвращает изображение в формате PNG или JPEG, содержащее указанный участок карты с заданными параметрами отображения.
Подобный подход особенно востребован в следующих сценариях:
В отличие от интерактивного JavaScript API, Static Image API не требует инициализации карты, загрузки тайлов и выполнения клиентского кода визуализации.
Работа сервиса основана на формировании URL-запроса с набором параметров.
Типичная схема выглядит следующим образом:
https://image.maps.ls.hereapi.com/mia/1.6/mapview
?apiKey=YOUR_API_KEY
&c=52.53086,13.38469
&z=14
&w=800
&h=600
После обработки запроса сервер HERE генерирует готовое изображение карты.
В JavaScript обычно создается URL, который затем используется:
img);Для работы требуется ключ доступа платформы HERE.
Пример параметра авторизации:
const apiKey = 'YOUR_API_KEY';
Затем ключ добавляется в URL:
const url =
`https://image.maps.ls.hereapi.com/mia/1.6/mapview?apiKey=${apiKey}`;
Все запросы к сервису должны содержать действительный API Key.
Минимальный запрос обычно включает:
Пример:
const apiKey = 'YOUR_API_KEY';
const url =
`https://image.maps.ls.hereapi.com/mia/1.6/mapview` +
`?apiKey=${apiKey}` +
`&c=52.53086,13.38469` +
`&z=13` +
`&w=800` +
`&h=600`;
document.querySelector('#map').src = url;
HTML:
<img id="map" alt="Static Map">
После загрузки страницы будет отображено статическое изображение выбранного района.
Параметр c определяет центр изображения.
Формат:
latitude,longitude
Пример:
const center = '40.7128,-74.0060';
Для отображения Нью-Йорка:
const url =
`https://image.maps.ls.hereapi.com/mia/1.6/mapview` +
`?apiKey=${apiKey}` +
`&c=${center}` +
`&z=12` +
`&w=1000` +
`&h=600`;
Параметр z отвечает за уровень приближения.
Пример:
z=3
Отображение целой страны.
z=8
Отображение региона.
z=15
Отображение кварталов.
z=18
Высокая детализация улиц и зданий.
Пример:
const zoom = 16;
Использование:
const url =
`https://image.maps.ls.hereapi.com/mia/1.6/mapview` +
`?apiKey=${apiKey}` +
`&c=48.8584,2.2945` +
`&z=${zoom}` +
`&w=900` +
`&h=700`;
Размеры определяются параметрами:
w — ширина;h — высота.Пример:
const width = 1200;
const height = 800;
URL:
const url =
`https://image.maps.ls.hereapi.com/mia/1.6/mapview` +
`?apiKey=${apiKey}` +
`&c=51.5074,-0.1278` +
`&z=12` +
`&w=${width}` +
`&h=${height}`;
Большие изображения полезны при печати и генерации отчетов.
Static Image API позволяет использовать различные стили отображения.
Параметр:
t
Пример:
&t=0
Стандартная дорожная карта.
&t=1
Спутниковое изображение.
&t=2
Рельефная карта.
Пример:
const url =
`https://image.maps.ls.hereapi.com/mia/1.6/mapview` +
`?apiKey=${apiKey}` +
`&c=35.6762,139.6503` +
`&z=13` +
`&w=1000` +
`&h=600` +
`&t=1`;
В результате будет создан спутниковый снимок выбранной территории.
Одной из наиболее востребованных возможностей является размещение маркеров на карте.
Параметр:
poix
Пример:
const url =
`https://image.maps.ls.hereapi.com/mia/1.6/mapview` +
`?apiKey=${apiKey}` +
`&c=52.53086,13.38469` +
`&z=14` +
`&w=800` +
`&h=600` +
`&poix=52.53086,13.38469;red;A`;
Здесь:
Результат — карта с красным маркером и подписью.
Допускается добавление нескольких объектов.
Пример:
const markers = [
'52.53086,13.38469;red;A',
'52.52000,13.41000;blue;B',
'52.51000,13.43000;green;C'
];
const url =
`https://image.maps.ls.hereapi.com/mia/1.6/mapview` +
`?apiKey=${apiKey}` +
`&c=52.53086,13.38469` +
`&z=12` +
`&w=900` +
`&h=700` +
markers.map(m => `&poix=${encodeURIComponent(m)}`).join('');
На карте появятся три независимых маркера.
Маркеры могут содержать произвольный текст.
Пример:
const location =
'48.8566,2.3522;red;Office';
Использование:
&poix=48.8566,2.3522;red;Office
Результатом станет маркер с надписью:
Office
Поддерживаются различные цвета.
Пример:
const redMarker =
'55.7558,37.6176;red;M';
const blueMarker =
'55.7600,37.6300;blue;B';
const greenMarker =
'55.7700,37.6100;green;G';
Это позволяет визуально разделять объекты по категориям.
Статическое изображение может содержать маршрут, рассчитанный заранее.
После получения массива координат маршрута создается параметр линии.
Пример:
const route =
'52.5,13.3,52.51,13.35,52.52,13.4';
URL:
const url =
`https://image.maps.ls.hereapi.com/mia/1.6/routing` +
`?apiKey=${apiKey}` +
`&r=${route}` +
`&w=1000` +
`&h=700`;
В ответ будет сформировано изображение маршрута.
Полилинии используются для отображения:
Пример:
const polyline =
'52.50,13.30,52.51,13.35,52.52,13.40';
Формирование запроса:
const url =
`https://image.maps.ls.hereapi.com/mia/1.6/mapview` +
`?apiKey=${apiKey}` +
`&w=1000` +
`&h=700` +
`&z=13` +
`&c=52.51,13.35` +
`&r=${polyline}`;
Static Image API часто используется в серверных приложениях.
Создание URL:
function buildMapUrl(lat, lng) {
const apiKey = process.env.HERE_API_KEY;
return (
'https://image.maps.ls.hereapi.com/mia/1.6/mapview' +
`?apiKey=${apiKey}` +
`&c=${lat},${lng}` +
'&z=15' +
'&w=800' +
'&h=600'
);
}
Получение ссылки:
const imageUrl =
buildMapUrl(52.53086, 13.38469);
Полученный URL можно использовать для загрузки файла.
Пример в браузере:
async function downloadMap(url) {
const response = await fetch(url);
const blob = await response.blob();
const objectUrl =
URL.createObjectURL(blob);
const link =
document.createElement('a');
link.href = objectUrl;
link.download = 'map.png';
link.click();
}
Вызов:
downloadMap(url);
Статическая карта может быть встроена в Canvas.
Пример:
const img = new Image();
img.onl oad = () => {
const canvas =
document.querySelector('canvas');
const ctx =
canvas.getContext('2d');
ctx.drawImage(img, 0, 0);
};
img.src = url;
Такой подход позволяет дополнительно рисовать поверх карты собственные объекты.
Для безопасного создания запросов удобно использовать объект
URLSearchParams.
Пример:
const params =
new URLSearchParams({
apiKey,
c: '52.53086,13.38469',
z: '14',
w: '800',
h: '600'
});
const url =
`https://image.maps.ls.hereapi.com/mia/1.6/mapview?${params}`;
Преимущества:
Поскольку результатом является обычное изображение, браузеры эффективно используют HTTP-кэш.
Практические преимущества:
Типичный подход:
const cache = new Map();
Проверка существования URL:
if (!cache.has(url)) {
cache.set(url, url);
}
При работе со статическими картами рекомендуется:
| Возможность | Static Image API | JavaScript Maps API |
|---|---|---|
| Интерактивность | Нет | Да |
| Панорамирование | Нет | Да |
| Масштабирование пользователем | Нет | Да |
| Маркеры | Да | Да |
| Маршруты | Да | Да |
| Нагрузка на браузер | Низкая | Средняя |
| Подходит для отчетов | Да | Нет |
| Подходит для email | Да | Нет |
| Подходит для печати | Да | Ограниченно |
Static Image API ориентирован на получение готовых изображений, тогда как JavaScript Maps API предназначен для создания полноценных интерактивных картографических приложений.