У меня есть карта, которую я создал с помощью Openlayers.Карта берет точки из базы данных и наносит их на карту после нажатия кнопки на странице.Эти работы, как и ожидалось.Что я хотел бы сделать, это добавить новую точку, когда пользователь дважды щелкает мышью где-нибудь на карте.Я пока не беспокоюсь о сохранении его в базе данных, и это просто для добавления новой точки к существующему слою с включенными в нее точками загрузки базы данных.
Мой код выглядит следующим образом:
map.on('dblclick', function (evt) {
console.log(ol.proj.transform(evt.coordinate, 'EPSG:3857', 'EPSG:4326'));
addMarker(ol.proj.transform(evt.coordinate, 'EPSG:3857', 'EPSG:4326'));
и
function addMarker(evt) {
var array = evt.toString().split(",").map(Number);
var long = array[0];
var lat = array[1];
toastr.info(long);
toastr.info(lat);
var marker = new ol.Feature(
new ol.geom.Point([long, lat])
);
var zIndex = 1;
marker.setStyle = [new ol.style.Style({
image: new ol.style.Icon(({
anchor: [0.5, 36],
anchorXUnits: "fraction",
anchorYUnits: "pixels",
opacity: 1,
src: "images/pinother.png",
zIndex: zIndex
})),
zIndex: zIndex
})];
vectorSource.addFeature(marker);}
Это создает точку на карте с правильным видом, но она всегда находится наисходная точка;0,0 широта / долгота!
Используя toastr (функцию оповещений в стиле) в моей функции addMarker, я вижу, что переменные "lat" и "long" заполняются правильно, поэтому он должен быть частью
var marker = new ol.Feature(
new ol.geom.Point([long, lat])
создание точки, которую я делаю неправильно.Передаваемые координаты имеют большие значения, например, «62.915233039476135», есть ли предел того, как долго это должно быть, или я пропускаю что-то еще, что мешает моей новой точке принимать какие-либо координаты?