2012-03-25 7 views
1

これは、Google Maps APIデベロッパーガイドから取得したコードサンプルです。私はJavaScriptに熟練した経験はありませんが、以前はこの構文を見たことがありませんでした。私を混乱させる部分は最初の部分です。彼らは "var citymap = {};"と言っています一見したように都市マップキーの束を宣言しています。そして、後で、彼らは「(都市マップのvar city){」などと言っています。これはJavaScriptで実行可能なマップ作成方法ですか?

これはJavaScriptでマップを作成する唯一の方法ですか?

// Create an object containing LatLng, population. 
var citymap = {}; 
citymap['chicago'] = { 
    center: new google.maps.LatLng(41.878113, -87.629798), 
    population: 2842518 
}; 
citymap['newyork'] = { 
    center: new google.maps.LatLng(40.714352, -74.005973), 
    population: 8143197 
}; 
citymap['losangeles'] = { 
    center: new google.maps.LatLng(34.052234, -118.243684), 
    population: 3844829 
} 
var cityCircle; 

function initialize() { 
    var mapOptions = { 
    zoom: 4, 
    center: new google.maps.LatLng(37.09024, -95.712891), 
    mapTypeId: google.maps.MapTypeId.TERRAIN 
    }; 

    var map = new google.maps.Map(document.getElementById("map_canvas"), 
     mapOptions); 

    for (var city in citymap) { 
    // Construct the circle for each value in citymap. We scale population by 20. 
    var populationOptions = { 
     strokeColor: "#FF0000", 
     strokeOpacity: 0.8, 
     strokeWeight: 2, 
     fillColor: "#FF0000", 
     fillOpacity: 0.35, 
     map: map, 
     center: citymap[city].center, 
     radius: citymap[city].population/20 
    }; 
    cityCircle = new google.maps.Circle(populationOptions); 
    } 
} 

答えて

2

これは、空のオブジェクトを作成します

var citymap = {}; 

...私は、コードの各ビットを説明してみましょう...次は、オブジェクトに値を追加します。

citymap['chicago'] = { 
    center: new google.maps.LatLng(41.878113, -87.629798), 
    population: 2842518 
}; 

この新しいキー( 'chicago')を追加し、オブジェクトにいくつかのプロパティ(centerと​​)を追加しますが、ループはオブジェクトです

for (var city in citymap) { 

この文は、citymapオブジェクトをループし、cityを各オブジェクトのキーに割り当てます。コードが使用するプロパティにアクセスするには

citymap[city].center 
citymap[city].population 

これは、複数の値を使用してループしてオブジェクトを作成する最良の方法です。 JavaScriptの

+0

それは私が疑った通りでした。ありがとうございました。 – Aerovistae

2
var citymap = {} 

手段でオブジェクトを操作する上でいくつかのreally good documentation hereがあり、彼らは名前citymapを持つオブジェクトを作成しています。

そのvar citymap = new Object();

http://www.phpied.com/3-ways-to-define-a-javascript-class/

+0

うわー、素晴らしいリンク。 – Aerovistae

+0

@Aerovistae あなたのお手伝いがあれば、それに印を付けてください。 – Jashwant

+0

質問をした後、8分くらいの間、受け入れられた回答をマークすることはできません。 FYI。 – Aerovistae

0

式citymap [ 'ロサンゼルス']の省略形はcitymap.longelesと同じです。 citymap ['losangeles']の削除を書くことができるので、ハッシュマップから削除する場合は注意する必要がありますが、citymap.longelesを削除することはできません。式citymap ['losangeles']は、文字列変数にキーがある場合にも使用できます。

var city = 'losangeles'; 
var x = citymap[city]; //good 
var x = citymap.city; //error 
関連する問題