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

How to highlight the outline of an subdivision where mouse is hovering?

例如,突出显示鼠标所在的城市轮廓hovering.I已阅读:

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

我有一些问题:

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

对于您的问题,

1 - 您将需要在 GeoJSON 等文件中定义的州或城市,但如果您有,那么是的,您可以将轮廓作为特征获取。

2 - 是的 - 您可以使用 map.on('pointermove' ...) 或向 pointermove 的 select 交互添加条件。

3 - 我认为这与 (1) 有关 - 从广义上讲,您可以使用任何 returns 合适的格式,例如 GeoJSON。

此示例显示 GeoJSON 用于点击 select 个国家/地区边界:

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