0
Код ниже использует абсолютное положение для центра карты, но я хочу установить центр в соответствии с функцией векторного слоя, файл KML - это возможно? Я посмотрел на getCentroid, но не могу получить синтаксис правильно?Openlayers, получающий центроид векторного слоя и использующий его для установки центра карты
map = new OpenLayers.Map("Map");
var mapnik = new OpenLayers.Layer.OSM();
//Set centre position converting from WGS to Mercator
var wgs84 = new OpenLayers.Projection("EPSG:4326");
var fromProjection = new OpenLayers.Projection("EPSG:4326"); // Transform from WGS 1984
var toProjection = new OpenLayers.Projection("EPSG:900913"); // to Spherical Mercator Projection
var position = new OpenLayers.LonLat(4.891280,52.373690).transform(fromProjection, toProjection);
var layer = new OpenLayers.Layer.Vector("vectorlayer", {
projection: wgs84,
strategies: [new OpenLayers.Strategy.Fixed()],
protocol: new OpenLayers.Protocol.HTTP({
url: "kmlfile.kml", //<-- relative or absolute URL to your .osm file
format: new OpenLayers.Format.KML()
}),
styleMap: new OpenLayers.StyleMap({
"default": {
//pointRadius: "${radius}",
fillColor: "blue",
fillOpacity: 0.1,
strokeColor: "#5555ff",
strokeWidth: 2,
strokeOpacity: 0.8
}
,
"select": {
fillColor: "#8aeeef",
strokeColor: "#32a8a9"
}
})
});
map.addLayers([mapnik, layer]);
map.addControl(new OpenLayers.Control.LayerSwitcher());
var scaleline = new OpenLayers.Control.ScaleLine();
map.addControl(scaleline);
//Set centre of map and zoom level
map.setCenter(position, 10);
Gery, что не работает - карты нагрузки, но я просто получить белый экран для карты и масштаба - 10000 км - если я увеличиваю масштаб, то карта мира появится и не будет сосредоточена на функции KML. –
, и если вы замените 'bounds' на' layer'? – Gery