发表用户:讨论贴
收集整理:James.Liu
相关讨论:http://www.mygis.com.cn/forum/dispbbs.asp?boardID=11&ID=7245
信息原始来源:James MapInfo技术论坛

文章标题:MapXtreme for Java怎样在地图文件中添加属性记录?

songqian

由于需要,要用程序添加属性记录。即表结构已经用professional定义好,但没有记录,需要在程序中动态添加,请问有没有做过这方面的,能告诉我在程序里用什么方法添加嘛?谢谢

wtusmchen

//屏幕坐标点
DoublePoint sPt = new DoublePoint(Double.valueOf(x).doublevalue(),
        Double.valueOf(y).doublevalue());
try{
     //转换到地理坐标
    DoublePoint mPt = mapobj.getMapJ().transformScreenToNumeric(sPt);
    //属性(只有一个Code,字符串)
    Attribute attrs[] = {new Attribute(code.trim())};
   //显示样式
   Rendition rend = TABStyleFactory.createPointStyle(m_Customer_TYPE, m_Customer_COLOR, m_Customer_SIZE);
   //创建点
   Feature fea = mapobj.getMapJ().getFeatureFactory().createPoint(mPt, rend, null, attrs, null);
   //添加到Layer
   lyr.addFeature(fea);
   //记录日志
   Log.log(UserAction.getUserObject(req), "FC13", "添加销售点 编号:" + code);  
}
catch(Exception e){
   e.printStackTrace();
}

songqian

上面那段程序这是在创建图元的时候添加了属性,请问一下,能不能为一个已经存在的图元,添加或修改属性,只改属性,而不用动图元本身?

wtusmchen

PrimaryKey key = fea.getPrimaryKey();
fea.getAttribute(0).set("AAAAAAAAAAA");
lyr.replaceFeature(key, fea);