读书人

怎么获取当前选中项的图层的名称

发布时间: 2012-10-13 11:38:17 作者: rapoo

如何获取当前选中项的图层的名称?
刚开始做gis开发,太多的东东不会. 

打开一个gst后有很多图层 ,用鼠标选中图中某一元素(线条等)后,如何获得该元素所在的图层名称?

[解决办法]
Feature.table
[解决办法]
你如果是用MapXtreme For Java
可以 给个思路
private void getMapInfo(MapJ mymap,double xpoint,double ypoint){
try {
//取得所有的图层
Layers ls=mymap.getLayers();
ArrayList<String> infos = new ArrayList<String>();
//长方块
//DoubleRect rect = mymap
//.transformScreenToNumeric(new DoubleRect(
//new DoublePoint(xpoint - 100, ypoint - 100),
//new DoublePoint(xpoint + 100, ypoint + 100)));
//坐标点
DoublePoint point=mymap.transformScreenToNumeric(new DoublePoint(xpoint,ypoint));
for(int i=0;i<ls.size();i++){
//取的
FeatureLayer fl=(FeatureLayer)ls.get(i);

//ls.get(i).getName()
infos.add(ls.get(i).getName());
System.out.println(ls.get(i).getName());//图层名称
//取的当前图层的表的信息
TableInfo ti = fl.getTableInfo();
//表的信息
ArrayList<String> columns = new ArrayList<String>();
for(int j=0;j<ti.getColumnCount();j++){
columns.add(ti.getColumnName(j));
}
//查询长方块的信息
//FeatureSet fs = fl.searchWithinRectangle(columns, rect,QueryParams.EMPTY_PARAMS);// 得到图元集
//查询坐标点的信息
//fl.searchWithinRegion(arg0, Geometry, arg2)
FeatureSet fs = fl.searchAtPoint(columns, point,QueryParams.EMPTY_PARAMS);// 得到图元集
Feature f=fs.getNextFeature();
if(f!=null){
System.out.println(f.getPrimaryKey());
for(int j=0;j<f.getAttributeCount();j++){
System.out.println(columns.get(j)+"-->"+f.getAttribute(j));
}
}
System.out.println("-------------------");
fs.dispose();
}
} catch (Exception e) {
System.err.println(e.getMessage());
}
}

读书人网 >行业软件

热点推荐