2012-03-22 6 views
2

私はbingやopenstreetmapのような異なるレイヤーのopenlayersマップを持っています。 bingとopenstreetmapは全く同じ場所を示しています。 私が層を雲に変えると、位置は約200m飛びます。openlayers:cloudmade層は、bingやosmとは若干異なる投影を持っています。

これはどのように変更するのですか? OpenLayers.Layer.XYZに変更OpenLayers.Layer.TMS:

var map, options; 

     function init(){ 

     map = new OpenLayers.Map('map', { 
     controls: [ 
       new OpenLayers.Control.Navigation(), 
       new OpenLayers.Control.ScaleLine(), 
       new OpenLayers.Control.Attribution(), 
       new OpenLayers.Control.LayerSwitcher(), 
       new OpenLayers.Control.PanZoomBar({minZoom: 12}) 

      ], 
      minZoom:12, 
      maxZoom:19   }); 


    var osm = new OpenLayers.Layer.OSM(); 


var binghybrid = new OpenLayers.Layer.Bing({ 
key: "MYKEY", 
type: "AerialWithLabels", 
name: "Satellite"}); 

var cloudmade = new OpenLayers.Layer.CloudMade("cloudmade", { 
key: 'MYKEY', 
styleId: 57439}); 


      map.addLayers([cloudmade, binghybrid, osm]); 
    var epsg4326 = new OpenLayers.Projection("EPSG:4326"); 
    var center = new OpenLayers.LonLat(14.290556,48.303056).transform(epsg4326, map.getProjectionObject()); 
    map.setCenter(center, 14); 

答えて

4

あなたはoriginal OpenLayers.Layer.CloudMadeクラスを変更する必要があります。 Hereは動作例です。

+1

ちょっとこのリンクを発見しました。本当にありがとう。今は働いている! – user1285411

+0

ありがとう!あなたは私の一日を救った! – milovanderlinden

関連する問題