var map = L.map('map').setView([51.505, -0.09], 18);
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map);
var marker1 = L.marker([51.505, -0.09]);
var FeatureGroup = L.geoJson([],{
pointToLayer: function(f,l){
return L.circleMarker(l);
}
});
//Many features
var index = 4000;
var yindex= 0;
while(index){
y= "51.5"+index
y=y*1
FeatureGroup.addData({
type:"Feature",
properties: {},
geometry:{ type:"Point", coordinates:[-0.09, y]}
});
index--;
}
//var Coordinates = marker1.getLatLng();
var feature = {
type:"Feature",
properties: {},
geometry:{ type:"Point", coordinates:[marker1.getLatLng().lng, marker1.getLatLng().lat]}
};
//var circleMarker = L.circleMarker(Coordinates);
FeatureGroup.addLayer(marker1);
map.addLayer(FeatureGroup);
setTimeout(function(){
//remove the marker
FeatureGroup.removeLayer(marker1._leaflet_id);
//adds the circle marker
FeatureGroup.addData(feature);
},2000);
.map{
width: auto;
height: 350px
}
<link href="https://unpkg.com/leaflet@1.3.1/dist/leaflet.css" rel="stylesheet"/>
<script src="https://unpkg.com/leaflet@1.3.1/dist/leaflet.js"></script>
<div id=map class="map"></div>
Нажатие на карту добавляет маркер в позиции X, Y к FeatureGroup
, затем удаляет маркер для замены на circlemarker
в тех же позициях X, Y.
circleMarker
в FeatureGroup
отображается с правильными координатами, но визуально находится в другой позиции.
Я использую Leaflet версии 1.3.1