首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 企业软件 > 行业软件 >

mapxtreme java鼠标坐标转换为经纬度后再进行图层查询时出错!解决方案

2012-03-07 
mapxtreme java鼠标坐标转换为经纬度后再进行图层查询时出错!!!代码:if ((reqPram req.getParameter(pt

mapxtreme java鼠标坐标转换为经纬度后再进行图层查询时出错!!!
代码:
  if ((reqPram = req.getParameter("ptx")) != null) 
  {
xStr = new Double(reqPram);//获取x坐标
  }
  if ((reqPram = req.getParameter("pty")) != null) 
  {
yStr = new Double(reqPram);//获取y坐标
  }
  if (xStr != null && yStr != null) 
  {
DoublePoint screenpoint = new DoublePoint(xStr.doubleValue(),yStr.doubleValue());
AtPoint = myMap.transformScreenToNumeric(screenpoint);//把鼠标坐标转换为经纬度
  }
  double newZoom = myMap.getZoom();//获取放大比例
  myMap.setZoomAndCenter(newZoom, newpoint);
  List columns = new ArrayList();
  Feature ftr;
  Attribute attrib = null;
  int attribCount;
  FeatureLayer featurelayer = (FeatureLayer) myMap.getLayers().get("省份");//获取图层
  featurelayer.setSelectable(true);
  TableInfo tabInfo = featurelayer.getTableInfo();
  for (int i = 0; i < tabInfo.getColumnCount(); i++) 
  {
columns.add(tabInfo.getColumnName(i));
}
  RewindableFeatureSet rFtrSet = new RewindableFeatureSet(featurelayer.searchAtPoint(columns, AtPoint, null));//在图层中按经纬度进行查找
  ftr = rFtrSet.getNextFeature();
  if (ftr != null) 
  {
attrib = ftr.getAttribute(0);
System.out.println(attrib);//输出结果
}
  现在是可以查找到值的,但是经结果不准确,我点江苏省时,会输出其他的省份,当我把地图放大再向左平移后,点江苏时,输出的可能是江苏,也可能不是江苏,有没有高手帮我看看啊!也可以加我QQ 1404307960,谢谢!!!


[解决办法]
帮你顶..........

热点排行