如何突出显示鼠标悬停的细分轮廓?

时间:2016-03-15 09:28:22

标签: openlayers-3

例如,突出显示鼠标悬停的城市轮廓。我读过这个:

https://gis.stackexchange.com/questions/35395/how-to-highlight-a-selected-country

我有一些问题:

  1. 通过openlayers,我无法直接获得鼠标悬停细分(州或城市)的轮廓latlang,我是对的吗?
  2. 为了完成它,我必须获得鼠标悬停的点信息(latlng或其他),然后通过这一点信息查询latlang,我是对的吗?
  3. 如果是,可以查询任何公共API吗?或者我必须自己为这种查询建立一个数据库?

1 个答案:

答案 0 :(得分:0)

如有问题,

1 - 你需要像GeoJSON这样的文件中定义的州或城市,但是如果你有,那么是的,你可以将轮廓作为一个特征。

2 - 是 - 您可以使用map.on(' pointermove' ...)或为指针移动的选择交互添加条件。

3 - 我认为这与(1)有关 - 一般来说,你可以使用任何返回合适格式的东西,例如GeoJSON。

此示例显示GeoJSON与点击一起用于选择国家/地区边界:

http://openlayers.org/en/v3.14.2/examples/box-selection.html

使用pointermove重新编写它可以为您提供所需的内容。最简单的方法是:

var highlighter = new ol.interaction.Select({
    condition: ol.events.condition.pointerMove
});

我已经为您做了一个演示:

http://www.freytag.org.uk/ol/hover.html