В настоящее время я работаю над сценарием для пользователя, чтобы выбрать место на карте для веб-приложения для путешествий, я также новичок ie и не обладаю рабочими знаниями по javascript, я разрабатываю веб-приложение на python - flask, и поскольку карта работает на JS, я в данный момент застрял.
Что мне нужно, так это то, что после того, как пользователь выберет страну на карте, он должен поместить маркер в этой выбранной страны, я посмотрел пример на веб-странице jvectormap по маркерам и работаю над этим, но этот пример позволяет использовать несколько маркеров, в то время как мне нужно разместить только один маркер, после выбора страны, сейчас я могу страна выбрана, но когда вы щелкаете по этой стране, маркер размещается, поэтому мне скорее нужно, чтобы маркер был разрешен, если выбран регион, есть атрибут onRegionSelected, но я не смог выяснить, как использовать isSelected атрибут для этой функции, поэтому я был бы очень признателен за вашу помощь с этим.
Также после этого Дон Мне нужно передать координаты этого маркера в форму в базу данных, поэтому, если это возможно, не могли бы вы помочь мне с этим? Я использую wtforms, но я не знаю, как получить доступ к переменным из javascript, мне понадобятся значения из маркера, чтобы сохранить их в БД через форму,
Заранее спасибо!
код:
<div id="world-map" style="width: 800px; height: 600px"></div>
<script>
$(function(){
var map,
markerIndex = 0,
markersCoords = {};
map = new jvm.Map({
map: 'world_mill',
markerStyle: {
initial: {
fill: 'red'
}
},
hoverColor: '#FCEF06',
hover: {
stroke: 'black',
"stroke-width": 2,
fill:'#FCEF06'
},
regionsSelectable: true,
regionsSelectableOne: true,
regionStyle: {
fill:'black',
selected: {
fill: 'red'
}
},
container: $('#world-map'),
onMarkerTipShow: function(e, label, code){
map.tip.text(markersCoords[code].lat.toFixed(2)+', '+markersCoords[code].lng.toFixed(2));
},
onMarkerClick: function(e, code){
map.removeMarkers([code]);
map.tip.hide();
}
});
map.container.click(function(e){
var latLng = map.pointToLatLng(
e.pageX - map.container.offset().left,
e.pageY - map.container.offset().top
),
targetCls = $(e.target).attr('class');
if (latLng && (!targetCls || (targetCls && $(e.target).attr('class').indexOf('jvectormap-marker') === -1))) {
markersCoords[markerIndex] = latLng;
map.addMarker(markerIndex, {latLng: [latLng.lat, latLng.lng]});
markerIndex += 1;
}
});
});
</script>