2016-08-10 11 views
-1

これはなぜ機能しますか?OpenLayers3を使用したグローバルJavaScript変数

function addMap() { 
    var view = new ol.View({ 
    center: ol.proj.fromLonLat([29.5646, 44.1575]), 
    zoom: 4 
    }); 
    var map = new ol.Map({ 
    target: 'map', 
    layers: [ 
     new ol.layer.Tile({ 
     source: new ol.source.OSM() 
     }) 
    ], 
    view: view 
    }); 
} 

...これはありません。

var view = new ol.View({ 
    center: ol.proj.fromLonLat([29.5646, 44.1575]), 
    zoom: 4 
}); 

function addMap() { 
    var map = new ol.Map({ 
    target: 'map', 
    layers: [ 
     new ol.layer.Tile({ 
     source: new ol.source.OSM() 
     }) 
    ], 
    view: view 
    }); 
} 

変数が関数の外にある場合、グローバル変数であり、他のすべての場所から使用できると思いました。

+0

「機能しない」と定義しますか? 'ol.View'は実行時にコンストラクタ関数として使用できるか、' addMap'が実際に呼び出されるまでに準備が整っていますか? –

+0

私は別の関数を作成したいと思いました。これは、ビューを使用し、回転を変更しています。例えば、 'function angleRight(){ view.setRotation(view.getRotation + 1); }「 」と入力してボタンを押すと呼び出されます。 –

+0

あなたはまだ*どのように*動作していないのか説明していません。 – kryger

答えて

0

問題は、文書が

    はあなたが

    ですべてこれを行うことができ、本体の終わりか
  1. にあなたのjavascriptのコードを移動

  2. ので、ロードされている前に、あなたは、ドキュメント上でJavaScriptを実行していることです
    $(document).ready(function() { 
    var view = new ol.View({ 
    center: ol.proj.fromLonLat([29.5646, 44.1575]), 
    zoom: 4 
    } 
    
+0

それはそうだった!ありがとう –

関連する問題