Масштабирование и центрирование карты для размещения всех объектов на (пузырьковом) слое - PullRequest
0 голосов
/ 24 марта 2020

У меня есть веб-сайт, который получает набор точек со стороны сервера, а затем отображает карту с помощью пакета azure-maps-control npm.

Я хочу, чтобы карта центрировалась и масштабировалась таким образом способ, который будет соответствовать всем точкам на экране.

Какой лучший способ добиться этого?

1 Ответ

1 голос
/ 25 марта 2020

Сначала рассчитайте ограничивающую рамку для ваших очков. Если у вас есть массив объектов Point или объектов atlas.Shape, используйте atlas.data.BoundingBox.fromData, если у вас есть массив позиций, используйте atlas.data.BoundingBox.fromPositions.

Оттуда вы можете либо вставьте это в параметры карты при загрузке карты, либо используйте setCamera карт, чтобы обновить вид карты. В обоих случаях вы передаете его в опцию bounds. Кроме того, поскольку вы работаете с точечными данными, ограничивающий прямоугольник будет основан на координатах и ​​не будет учитывать размер ваших значков в пикселях. Чтобы учесть это, используйте параметр padding, чтобы добавить пиксельный буфер вокруг ограничительной рамки. Например:

map.setCamera({
    bounds: atlas.data.BoundingBox.fromData(featureArray),
    padding: 50
});

Многие образцы в галерее образцов используют этот метод: https://azuremapscodesamples.azurewebsites.net/index.html

...