2011-12-23 12 views
0

私はjavascriptとgoogle mapsをかなり新しくしています。私は、提出されたときに、値をジオコーディング入力を持っていると私はそれをみたい:マップは(何かが入力され、正常すでに ジオコードされている)が存在する変数が別の関数内で変更されたかどうかを検出します。

  • あれば、そうでない
  • 作成し、それを更新したり、その点を中心にした地図。

私のコードの種類のこのようなものです:私はVARマップが変更された場合、私は見ていますどのように、私の質問は...私はちょうどJS変数がどのように動作するかを理解していないと思います

var map; 

function getlatlong() { //this function gets the input value and then geocodes 
    if(map.length){recentermap()} //if map exists, recenter map 
    else{createmap()} //create map 
} 

function createmap(){ //this function creates the map (by editing `var map`) 
    var map = new google.maps.Map(); 
} 

私は2番目の関数内でそれを変更する場合は?

答えて

2

あなたが言う:

function createmap(){ //this function creates the map (by editing `var map`) 
    var map = new google.maps.Map(); 
} 

あなたが唯一の機能createmapに存在するマップと呼ばれるローカル変数を作成しています。

function createmap(){ //this function creates the map (by editing `var map`) 
    map = new google.maps.Map(); 
} 
+0

感謝:あなたはvarキーワードを使用してはならないので、あなたは外側のスコープで宣言されたあなたのmap変数を使用したいです。 gmaps api v3の経験... 'var map'でマップを作成したかどうかをどうやって検出しますか? map.lengthは、ローカルではなくグローバルな 'map'を使うだけでは動作しません。 –

+0

@Andypandy 'if(map.length) 'の代わりに' if(map) 'を試してみてください。 – Paulpro

+0

が有効です。ありがとう! –

関連する問題