0

チェックボックスの状態に応じてマーカーを追加/削除する必要があります。ここに追加/削除機能があります(正しく機能しません):

function getPointOnMap(mapObj) { 
    var position = new google.maps.LatLng(mapObj.lattitude, mapObj.longtitude);

    if(markers.length!=0){
        for(var i=0; i<markers.length; i++){
            if(markers[i].getPosition().toString() == position.toString()){
                marker.setMap(null);
                markers.slice(i);
            } else {
                var marker = new google.maps.Marker({ 
                    position: new google.maps.LatLng(mapObj.lattitude, mapObj.longtitude), 
                    map: map });
                markers.push(marker);
            }
        }   
    } else {

        var marker = new google.maps.Marker({ 
            position: new google.maps.LatLng(mapObj.lattitude, mapObj.longtitude), 
            map: map });
        markers.push(marker);
    }
}

マーカーのチェックボックスとデータを取得するコードは次のとおりです。

$.ajax({
            type : "POST",
            url : "/getElements.json",
            success : function(result) {
            var html = '';
                for ( var i = 0; i < result.length; i++) {
                    (function(n) {
                        var obj = result[i];
                        if (obj.field == 0) {
                            element = $("<input>", {
                            type : "checkbox",
                            id   : obj.id
                        });

                        element.click(function() {
                            getPointOnMap(obj);
                        });
                        $("#orders").append(element,
                            obj.address + "<br />");
                        }
                    })(i)
                }
            }
});

チェックボックスの状態に応じてマップからマーカーを追加/削除する必要があるため、誰かが論理的な間違いを指摘する可能性があります

4

1 に答える 1