1

我有一张 ESRI 地图,上面有 11 条折线。我希望这样当用户将鼠标悬停在一条线上时,这条线会改变不同的颜色并改变为更大的宽度。当用户将鼠标移出线时,线将恢复到原来的颜色和宽度。所有这些行都在同一层上(var 到达)。

我有检测用户鼠标悬停或鼠标移出一行的代码:

dojo.connect(reaches, "onMouseOver", function(evt) 
{ });

dojo.connect(reaches, "onMouseOut", function() 
{ });

它们正确地检测鼠标何时越过一条线以及何时鼠标离开一条线。我拥有这两个功能的方式是,它们检测鼠标何时位于reaches图层中的任何一条线上。我希望该onMouseOver函数知道将鼠标悬停在哪条线上并更改线的颜色和宽度。我该怎么做呢?

4

1 回答 1

1

我希望 onMouseOver 函数知道鼠标悬停在哪一行

evt为您的事件处理函数提供的参数应该有一个.graphic属性,其中包含您悬停的要素的几何形状。

并更改线条的颜色和宽度

您不能直接在要素上执行此操作而不使用其字段值,但您可以将新要素添加到map.graphics图层以用作突出显示的要素。ESRI 的论坛上有一个很好的例子:

dojo.connect(pdaGraphicsLayer, "onMouseOver", function(evt) {
map.graphics.clear();
var highlightGraphic = new esri.Graphic(evt.graphic.geometry,highlightSymbol);
map.graphics.add(highlightGraphic);
});
于 2013-04-04T04:20:15.770 回答