1

JSONファイルの構造は次のとおりです。

({condos:[{Address:'123 Fake St.', Lat:'56.645654', Lng:'23.534546'},{... another condo ...},{...}],houses:[{Address:'1 Main Ave.', Lat:'34.765766', Lng:'27.8786674'},{... another house ...}, {...}]})

これで、 1 つの大きな JSON 配列にコンドミニアム家屋のリストができました。

それらをすべてマップにプロットしたいのですが、コンドミニアム家屋に異なるマーカー アイコン (コンドミニアムにはのマーカー、家には緑のマーカー) を付けたいと考えています。

$.each()私が抱えている問題は、マーカーを通過するときにマーカーの種類を区別する方法を考え出すことです。現在コンドミニアムと一軒家のどちらでif働いているかを確認するにはどうすればよいですか?

var markers = null;
$('#map').gmap(mapOptions).bind('init', function(){
    $.post('getMarkers.php', function(json){
        markers = json;
        $.each(markers, function(type, dataMembers) {
            $.each(dataMembers, function(i, j){
                //if house use house.png to create marker
                $('#map').gmap('addMarker', { 'position': new google.maps.LatLng(parseFloat(Lat), parseFloat(Lng)), 'bounds':true, 'icon':'house.png' } );
                //if condo use condo.png
                $('#map').gmap('addMarker', { 'position': new google.maps.LatLng(parseFloat(Lat), parseFloat(Lng)), 'bounds':true, 'icon':'condo.png' } );
            });
        });
    });
});
4

1 に答える 1

2

ネストされたコレクションがあります。2つのメンバー(コンドミニアムと家)を持つオブジェクトで、それぞれに複数のサブオブジェクトが含まれています。あなたはすでに外側のeach()ループの一部としてタイプを持っているように見えるので、それを使用してください:

...
        markers = json;
        $.each(markers, function(type, dataMembers) { // <- right here
            $.each(dataMembers, function(i, j){
                if (type == 'house') {
                    $('#map').gmap('addMarker', { 'position': new google.maps.LatLng(parseFloat(Lat), parseFloat(Lng)), 'bounds':true, 'icon':'house.png' } );
                }
                else if (type == 'condo') {
                    $('#map').gmap('addMarker', { 'position': new google.maps.LatLng(parseFloat(Lat), parseFloat(Lng)), 'bounds':true, 'icon':'condo.png' } );
                }
            });
        });
...
于 2012-06-08T16:36:48.710 に答える