OpenLayers: проекция отдельного VectorLayer как в GoogleEarth
Необходимо в векторном слое, который единственный и базовый, отобразить полигон (данные из KML-файла, созданного в GoogleEarth).
Собственно полигон отображается, но сжатым по вертикали. По всей видимости проблема в проекции... Но если подключить базовым слоем Google, затем векторный слой с этим же KML-файлом, то все отображается без искажений. Ниже приведен код с Google и векторным слоями: var geographic = new OpenLayers.Projection("EPSG:4326"); var mercator = new OpenLayers.Projection("EPSG:900913"); var lon = (lonMax-lonMin)/2+lonMin; var lat = (latMax-latMin)/2+latMin; var bounds = new OpenLayers.Bounds(lonMin, latMin, lonMax, latMax); bounds.transform(geographic,mercator); var zoom = 12; var options = { projection: mercator, displayProjection: geographic, maxExtent: bounds }; map = new OpenLayers.Map('map_element', options); var layer = new OpenLayers.Layer.Google( 'Google' ,{ type: google.maps.MapTypeId.HYBRID ,numZoomLevels: 20 ,'sphericalMercator': true } ); map.addLayer(layer); var myKML = new OpenLayers.Layer.GML( "KML layer", "kml/kml01.kml", { format: OpenLayers.Format.KML, projection: map.displayProjection } ); map.addLayer(myKML); var proj = geographic; var point = new OpenLayers.LonLat(lon, lat); map.setCenter(point.transform(proj, map.getProjectionObject()), zoom); Как отобразить kml01.kml в браузере с помощью OpenLayers без искажения? Помогите, плз! |
Самый простой вариант скрыть или может даже удалить слой Google после инициализации
|
Часовой пояс GMT +3, время: 01:22. |