如何还原 ESRI arcgis 中的图形符号
How to revert the symbol of graphic in ESRI arcgis
我有一个要素图层并向 select 图形添加了点击事件。在 selection 上,我更改了符号以显示图形是 selected.
如下代码
var symbol;
switch (graphic.geometry.type) {
case "point":
//symbol for point geometry
symbol = new SimpleMarkerSymbol(
SimpleMarkerSymbol.STYLE_CIRCLE, 12,
new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID,
new Color([ 247, 0, 171, 0.9 ]), 2),
new Color([ 0, 255, 255, 255.25 ]), 0.5);
break;
case "polyline":
case "polygon":
//symbol for Polygon geometry
symbol = new SimpleFillSymbol(
SimpleFillSymbol.STYLE_NULL, new SimpleLineSymbol(
SimpleLineSymbol.STYLE_SOLID,
new Color([ 0, 255, 0 ]), 3),
new Color([ 0, 125, 0,0.35 ]));
break;
}
graphic.setSymbol(symbol);
当 de-selection 再次意味着用户 select 第二次单击图形时,我需要设置上一个符号。
我是否需要维护每个功能及其符号?或者他们有什么最好的方法吗?
@chiranjeevibmse 您可以通过在查询中发送 objectid 来使用 Featurelayer.selectFeatures 方法,而不是更改符号并维护之前的符号。
第一次点击时,使用您必须 select
的 objectid 进行查询
var query = new Query();
query.objectIds = [graphic.attributes.FID];
layer.selectFeatures(query,FeatureLayer.SELECTION_ADD);
不要忘记设置 select 符号 ;)
第二次点击可以调用的图形
var query = new Query();
query.objectIds = [graphic.attributes.FID];
layer.selectFeatures(query,FeatureLayer.SELECTION_SUBTRACT);
它将处理符号。
我有一个要素图层并向 select 图形添加了点击事件。在 selection 上,我更改了符号以显示图形是 selected.
如下代码
var symbol;
switch (graphic.geometry.type) {
case "point":
//symbol for point geometry
symbol = new SimpleMarkerSymbol(
SimpleMarkerSymbol.STYLE_CIRCLE, 12,
new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID,
new Color([ 247, 0, 171, 0.9 ]), 2),
new Color([ 0, 255, 255, 255.25 ]), 0.5);
break;
case "polyline":
case "polygon":
//symbol for Polygon geometry
symbol = new SimpleFillSymbol(
SimpleFillSymbol.STYLE_NULL, new SimpleLineSymbol(
SimpleLineSymbol.STYLE_SOLID,
new Color([ 0, 255, 0 ]), 3),
new Color([ 0, 125, 0,0.35 ]));
break;
}
graphic.setSymbol(symbol);
当 de-selection 再次意味着用户 select 第二次单击图形时,我需要设置上一个符号。
我是否需要维护每个功能及其符号?或者他们有什么最好的方法吗?
@chiranjeevibmse 您可以通过在查询中发送 objectid 来使用 Featurelayer.selectFeatures 方法,而不是更改符号并维护之前的符号。
第一次点击时,使用您必须 select
的 objectid 进行查询var query = new Query();
query.objectIds = [graphic.attributes.FID];
layer.selectFeatures(query,FeatureLayer.SELECTION_ADD);
不要忘记设置 select 符号 ;)
第二次点击可以调用的图形
var query = new Query();
query.objectIds = [graphic.attributes.FID];
layer.selectFeatures(query,FeatureLayer.SELECTION_SUBTRACT);
它将处理符号。