У меня есть карта из olms
, и я пытаюсь наложить на нее сетку 4x4.Я хочу, чтобы квадрат завис, чтобы изменить цвет. Этот код несколько работает, но он не согласован и иногда подвержен ошибкам.Как мне сделать это более последовательным?
Это мой обратный вызов перемещения мыши:
var displayFeatureInfo = function(pixel) {
var feature = map.forEachFeatureAtPixel(pixel, function(feature) {
return feature;
});
if (feature) {
document.body.style.cursor = 'pointer';
} else {
document.body.style.cursor = 'default';
}
if (feature !== highlight) {
if (highlight) {
featureOverlay.getSource().removeFeature(highlight);
}
if (feature) {
featureOverlay.getSource().addFeature(feature);
}
highlight = feature;
}
}
И вот где я его установил:
olms('map', 'https://maps.tilehosting.com/styles/darkmatter/style.json?key=' + apiKey).then(function(mp) {
map = mp;
map.setView(view);
map.addLayer(polyLayer);
featureOverlay = new VectorLayer({
source: new VectorSource(),
map: map,
style: function(feature) {
return highlightStyle;
}
});
map.on('pointermove', function(evt) {
if (evt.dragging) {
return;
}
var pixel = map.getEventPixel(evt.originalEvent);
displayFeatureInfo(pixel);
});
});