Opanlayers Reprojection Kml слой - PullRequest
       32

Opanlayers Reprojection Kml слой

0 голосов
/ 03 февраля 2011

У меня есть карта с проекцией 'EPSG: 32639' для базовой карты и проекцией 'EPSG: 4326' для слоя кмл, которые отображаются на базовой карте.Он просто показывает мою базовую карту и не показывает слой кмл.что с этим не так?

Мой исходный код:

function initMap(){
            // if this is just a coverage or a group of them, disable a few items,
            // and default to jpeg format
            format = 'image/png';

            var bounds = new OpenLayers.Bounds(
                551438.385, 3602649.973,
                571430.791, 3627258.571
            );
            var options = {
                controls: [
                                            new OpenLayers.Control.Navigation( {mouseWheelOptions: {interval: 100}}),
                    new OpenLayers.Control.PanZoomBar(),
                                            new OpenLayers.Control.NavToolbar(),
                    new OpenLayers.Control.LayerSwitcher({'ascending':false}),
                    new OpenLayers.Control.Permalink(),
                    new OpenLayers.Control.ScaleLine(),
                    new OpenLayers.Control.MousePosition(),
                                            new OpenLayers.Control.Scale($('scale')),
                                            new OpenLayers.Control.OverviewMap(),
                    new OpenLayers.Control.KeyboardDefaults(),
                                            new OpenLayers.Control.ZoomBox({alwaysZoom:true})
                                            ],
                maxExtent: bounds,
                projection: 'EPSG:32639',
                units: 'm',
                                    maxResolution: 136.21203906250003,
                                    numZoomLevels: 10,
            };
            map = new OpenLayers.Map('map', options);


            tiled = new OpenLayers.Layer.TileCache('ESFAHANMAP',
             ['http://www.memap.ir/map'],'ESFAHANMAP',{'format':'image/jpeg',sphericalMercator: true, buffer: 0 });


                            kmlLayer = new OpenLayers.Layer.Vector('Points', 'point.kml',{
                                    projection: new OpenLayers.Projection('EPSG:4326')
                            });
                            map.addLayers([tiled,kmlLayer]);
            map.zoomToExtent(bounds);

        } 

1 Ответ

0 голосов
/ 04 февраля 2011

Ну, вы не можете показывать разные проекции на одной карте.Вам необходимо перепроектировать объекты из вашего KML в ту же проекцию, что и у вашей базовой карты.Смотрите пример здесь

...