专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > GIS

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

发布时间:2010-06-06 17:16:43 文章来源:www.iduyao.cn 采编人员:星星草
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,谢谢!!!


------解决方案--------------------
帮你顶..........
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: