Как получить границы группы маркеров на карте Cloudmade Leaflet
Я создал мобильную карту с помощью Cloudmade Leaflet, и теперь у меня есть несколько маркеров, совпадающих со значениями LatLong в базе данных. Тем не менее, я не могу понять, как установить начальный вид карты, чтобы установить масштаб и центрировать карту в группе маркеров. Я предполагаю, что мне нужно использовать setBounds, но для этого мне нужно знать, каковы координаты NorthEast и SouthWest.
Нужно ли мне проходить через весь массив координат маркеров, чтобы найти значения для режима "Самый северный", "Самый восточный", "Самый южный" и "Запад", или есть более простой способ?
4 ответа
Создайте объект L.LatLngBounds и переберите свои маркеры, вызывая L.LatLngBounds.extend() для каждого lat/lng.
map.fitBounds(markers.getBounds());
должно работать... при условии, что у вас те же имена, что и в примерах..
Я думаю, что самым простым способом было бы сделать что-то вроде этого:
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#.