Как получить границы группы маркеров на карте Cloudmade Leaflet - PullRequest
2 голосов
/ 13 декабря 2011

Я создал мобильную карту с помощью Cloudmade Leaflet, и теперь у меня есть несколько маркеров, совпадающих со значениями LatLong в базе данных.Однако я не могу понять, как установить начальный вид карты, чтобы установить масштаб и отцентрировать карту по группе маркеров.Я предполагаю, что мне нужно использовать setBounds, но для этого мне нужно знать координаты NorthEast и SouthWest.

Нужно ли мне пройти через весь массив координат маркеров, чтобы найти самые северные, самые восточные, Самые южные и западные значения или есть более простой способ?

Ответы [ 4 ]

2 голосов
/ 27 ноября 2012

Вы можете использовать метод fitBounds (). Ссылка на буклет

1 голос
/ 05 июня 2013

Создайте объект L.LatLngBounds и переберите свои маркеры, вызывая L.LatLngBounds.extend () для каждого lat / lng.

0 голосов
/ 17 апреля 2014

map.fitBounds (markers.getBounds ());

должно работать ... при условии, что у вас те же имена, что и в примерах ..

0 голосов
/ 31 июля 2012

Я думаю, что самым простым способом было бы сделать что-то вроде этого:

int minLat = int.MaxValue;
int minLong = int.MaxValue;
int maxLat = int.MinValue;
int maxLong = int.MinValue;

foreach (var point in coordinates) 
{
    minLat = Math.Min(point.Latitude(), minLat);
    minLong = Math.Min(point.Longitude(), minLong);
    maxLat = Math.Max(point.Latitude(), maxLat);
    maxLong = Math.Max(point.Longitude(), maxLong);
} 

Это хорошо сработало для меня в C #.

...