我已经使用 Cloudmade Leaflet 创建了一个移动地图并拥有它,因此会生成许多标记以与数据库中的 LatLong 值一致。但是,我不知道如何设置初始地图视图以设置缩放并将地图居中放置在标记组上。我想我需要使用 setBounds 但为此我需要知道 NorthEast 和 SouthWest 坐标是什么。
我是否需要遍历整个标记坐标数组才能找到最北端、最东端、最南端和最西模式值,还是有更简单的方法?
我已经使用 Cloudmade Leaflet 创建了一个移动地图并拥有它,因此会生成许多标记以与数据库中的 LatLong 值一致。但是,我不知道如何设置初始地图视图以设置缩放并将地图居中放置在标记组上。我想我需要使用 setBounds 但为此我需要知道 NorthEast 和 SouthWest 坐标是什么。
我是否需要遍历整个标记坐标数组才能找到最北端、最东端、最南端和最西模式值,还是有更简单的方法?
您可以使用 fitBounds() 方法。 传单参考
创建一个 L.LatLngBounds 对象并循环遍历每个 lat/lng 调用 L.LatLngBounds.extend() 的标记。
我认为最简单的方法是做这样的事情:
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# 中对我来说效果很好。
map.fitBounds(markers.getBounds());
应该可以工作...只要您与示例具有相同的名称..