Космоснимки API, Openlayers, Mapserver
Добавлено: 18 дек 2013, 13:45
				
				Добрый день, у меня вопрос, состоящий из нескольких вопросов.
Я для реализации в web-геосервисе основного слоя карты я использую OpenstreetMap и карту космоснимков, поверх нужно наложить данные со спутникового прибора, но не получается объединить в один работающий пример всё это. Вот js-код:
 
Т.е. есть слои OSM, Космоснимки и слой Mapserver-a.
Вот содержимое map-файла:
Какие сейчас проблемы: между слоями OSM и Космоснимков заметна раздница в виде смещения объектов относительно друг-друга.
Mapserver-й слой не отображается, хотя если отключить два других слоя то отображается.
Подскажите, пожалуйста, где у меня ошибки.
Заранее большое спасибо!
			Я для реализации в web-геосервисе основного слоя карты я использую OpenstreetMap и карту космоснимков, поверх нужно наложить данные со спутникового прибора, но не получается объединить в один работающий пример всё это. Вот js-код:
Код: Выделить всё
var map, layer;
        function init(){
         	var mod07temperature = "http://localhost/cgi-bin/mapserv?map=/home/diver/geolocal/maps/altai.map&layer=prod&mode=map";
         	
            map = new OpenLayers.Map({
                    div: "map",
                    allOverlays: true
                });
            layer = new OpenLayers.Layer.OSM( "Simple OSM Map");
            
            var oam = new OpenLayers.Layer.XYZ(
         	 	"Express Base",
         	 	"http://maps.kosmosnimki.ru/TileService.ashx?Request=gettile&layerName=04C9E7CE82C34172910ACDBF8F1DF49A&apikey=L5VW1QBBHJ&z=${z}&x=${x}&y=${y}",
         	{
            sphericalMercator: true,
            isBaseLayer: true,
			  visibility: false,
         	}
     		);
            var mod07temperature = new OpenLayers.Layer.MapServer("Temperature",
    		      temperature,
		          { layers: 'image',
			    format: 'png24',      
			   sphericalMercator: true,
			    visibility: false
});
            map.addLayer(layer);
            map.addLayer(oam);
            map.addLayer(temperature);
            map.setCenter(
                new OpenLayers.LonLat(82.6167, 52.7667).transform(
                    new OpenLayers.Projection("EPSG:4326"),
                    map.getProjectionObject()
                ), 11
            );    
    map.addControl(new OpenLayers.Control.LayerSwitcher());
    map.addControl(new OpenLayers.Control.Permalink());
    map.addControl(new OpenLayers.Control.MousePosition());
        }
Т.е. есть слои OSM, Космоснимки и слой Mapserver-a.
Вот содержимое map-файла:
Код: Выделить всё
  FONTSET "./fonts/fonts.list"
  SYMBOLSET './symbols/symbols35.sym'
  OUTPUTFORMAT
    NAME pnggd
    DRIVER "GD/PNG"
    MIMETYPE "image/png"
    #IMAGEMODE PC256
    EXTENSION "png24"
  END
 
    WEB
    TEMPLATE  '/home/geolocal/example/templates/template1.html'
    IMAGEPATH '/home/geolocal/maps/images/'
    IMAGEURL  '/maps/images/'
    # WMS server settings
    METADATA
      'ows_title'           'QGIS-MAP'
      'ows_onlineresource'  'http://localhost/cgi-bin/mapserv?map=/home/diver/geolocal/map/data/temp.map'
      'ows_srs'             'WGS84'
    END
    
  END
  LAYER
    NAME 'prod'
    TYPE RASTER
    DUMP true
    #TEMPLATE fooOnlyForWMSGetFeatureInfo
    #EXTENT 62.2289530630876442 49.9969740071353286 120.0024212413648002 59.9999999949999889
    #DATA "/home/diver/geolocal/mod072.tif"
    DATA "/home/diver/geolocal/data/tiff/234.tif"
       STATUS ON
    TYPE RASTER
   PROJECTION
    'proj=sphericalMercator'
    'datum=WGS84'
    'no_defs'
    END
   PROCESSING "RESAMPLE=AVERAGE"
   PROCESSING "RESAMPLE=BILINEAR"
   PROCESSING "NODATA=0"
   PROCESSING "SCALE=AUTO" 
   PROCESSING "SCALE_BUCKETS=256" 
   PROCESSING "DITHER=YES"
OFFSITE 71 74 65
TRANSPARENCY 100
OPACITY 100
  END
 END
Mapserver-й слой не отображается, хотя если отключить два других слоя то отображается.
Подскажите, пожалуйста, где у меня ошибки.
Заранее большое спасибо!