jVectormap добавление маркеров из базы данных добавляет только один маркер - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь добавить маркеры из базы данных MySQL через PHP в jvectormap (версия 2.0.2).

Я не уверен, что делаю неправильно, но когда я добавляю маркеры динамически с использованием .AddMarkers, отображается только один маркер, который является последним маркером в ответе JSON.

Это мой код:

JavaScript:

$("#airportsmap").vectorMap({
    map: "world_mill_en",
    scaleColors: ["#eff0f1", "#eff0f1"],
    normalizeFunction: "polynomial",
    hoverOpacity: .7,
    hoverColor: !1,
    regionStyle: {
        initial: {
            fill: "#6673a7"
        }
    },
    markerStyle: {
        initial: {
            stroke: "transparent"
        },
        hover: {
            stroke: "rgba(112, 112, 112, 0.30)"
        }
    },
    backgroundColor: "transparent",
    markers:[]
});
function loadairportmarkers(){
        $.ajax({
            type: "POST",
            url: "modules/getfavouriteairportsdash.php",
            dataType: 'json',
            cache: false,        
            success: function(response) {
            if(!response.errors && response.result) {
                $.each(response.result, function( index, value) {
                    addMapPoint(value[3], value[4], value[2]);
                });
            } else {
                $.each(response.errors, function( index, value) {
                    $('input[name*='+index+']').addClass('error').after('<div class="errormessage">'+value+'</div>')
                });

            }
        }
        })
}
function addMapPoint(lat, lon, title){
    var map = $('#airportsmap').vectorMap('get', 'mapObject'); 
    map.addMarkers([{ latLng: [lat, lon], name: title }], []);
}

PHP

        $stmt = $mysqli->prepare("
            SELECT .... query here
        ");
        $stmt->bind_param('is', $uid,$emp);
        $stmt->execute();
        $result = $stmt->get_result();
        while($row = $result->fetch_all())
        {
            $returnResult = $row;
        }
    }
    mysqli_close($mysqli);
    echo json_encode(['result' => $returnResult, 'errors' => $errors]);
    exit;

В результате получается следующий JSON ответ:


{"result":[["HUEN","FAOR","Entebbe International Airport","0.042386","32.443501"],["GABS","FAOR","Modibo Keita International Airport","12.5335","-7.94994"]],"errors":false}
...