Я пытаюсь добавить маркеры из базы данных 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}