如何在 GeoJson 层中以编程方式突出显示细分的轮廓?
How to highlight the subdivision's outline programmatically in a GeoJson layer?
我的地图中有一个 GeoJson 源层,由于注册了相应的事件,当鼠标悬停在细分的轮廓上时,细分的轮廓将突出显示。
问题是如何以编程方式(而不是通过鼠标覆盖)突出显示细分的轮廓?
您必须以编程方式找到要突出显示的特征(细分的轮廓)。
我想你已经在你的代码中定义了源、矢量图层和叠加层(这是一个只包含突出显示的特征的层):
source = new ol.source.Vector({
url: '[your url]',
format: new ol.format.GeoJSON()
...........
layer = new ol.layer.Vector({
source: source
.....................
overlay = new ol.layer.Vector({
.........................
首先需要找到所有的特征
var _features = source.getFeatures();
那么您需要一个名称或 ID 来查找该功能:
for (i = 0; i < _features.length; i++) {
if (_features[i].get('name') === name) {
_feature = _features[i];
break;
}
}
您将把特征添加到叠加矢量图层:
overlay.getSource().addFeature(_feature);
我的地图中有一个 GeoJson 源层,由于注册了相应的事件,当鼠标悬停在细分的轮廓上时,细分的轮廓将突出显示。 问题是如何以编程方式(而不是通过鼠标覆盖)突出显示细分的轮廓?
您必须以编程方式找到要突出显示的特征(细分的轮廓)。
我想你已经在你的代码中定义了源、矢量图层和叠加层(这是一个只包含突出显示的特征的层):
source = new ol.source.Vector({
url: '[your url]',
format: new ol.format.GeoJSON()
...........
layer = new ol.layer.Vector({
source: source
.....................
overlay = new ol.layer.Vector({
.........................
首先需要找到所有的特征
var _features = source.getFeatures();
那么您需要一个名称或 ID 来查找该功能:
for (i = 0; i < _features.length; i++) {
if (_features[i].get('name') === name) {
_feature = _features[i];
break;
}
}
您将把特征添加到叠加矢量图层:
overlay.getSource().addFeature(_feature);