2016-08-26 9 views
0

私はjsonの配列からデータを取り込んでいます。Googleマップのピンのタイトルはjsonの配列

私は、多次元配列を渡すとJSONに変換:郵便番号を使用して

public List<string[]> locationList { get; set; } 

var locs = @Html.Raw(Json.Encode(Model.locationList)); 

マップコード:

var map; 
var elevator; 
var myOptions = { 
    zoom: 5, 
    center: new google.maps.LatLng(53.90, -3.00), 
    mapTypeId: 'roadmap' 
}; 

map = new google.maps.Map($('#map_canvas_locations')[0], myOptions); 

var latlng; 

for (var i = 0; i < locs.length; i++) { 
    var name = locs[i][1]; 
    var markerdata = $.getJSON('https://maps.googleapis.com/maps/api/geocode/json?address=' + locs[i][0] + '&sensor=false', null, function (data) { 
     var p = data.results[0].geometry.location 
     latlng = new google.maps.LatLng(p.lat, p.lng); 

     new google.maps.Marker({ 
      position: latlng, 
      map: map, 
      title: name, 
     });   
    }); 
}; 

問題がタイトルにあるように思われます。私は、JSONの値を使用してみた場合、直接何もピンが表示されません:

new google.maps.Marker({ 
      position: latlng, 
      map: map, 
      title: locs[i][1], 
     }); 

を私はVARに値を代入しようとした場合、私はすべての地図上のアイコンを取得するが、それらはすべてが最後のエントリのタイトルのようだものを持っている:

var name = locs[i][1];  

new google.maps.Marker({ 
      position: latlng, 
      map: map, 
      title: name, 
     }); 

私は間違っていますか?

+0

すべてのエラーですか? 'locs [i] [1]'の値は数字ですか?問題を示す[mcve]を入力してください。 – geocodezip

答えて

0

問題がgoogle.maps.Markerのオプションは、伝統的なforループ

するのではなく、最後の値

使用forEachとして終わる{}

はそうあなたがiへの参照を渡す終わる閉鎖に包まれています

nameはそれを維持できるようにする必要がありfunctionの存在は値

です

以上のため、ここでの本当の答えは...コンソールで
JavaScript closure inside loops

関連する問題