当前位置: 代码迷 >> GIS >> mapxtreme java鼠标坐标转换为经纬度后再进行图层查询时出错!解决方案
  详细解决方案

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

热度:116   发布时间:2016-05-05 06:41:44.0
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,谢谢!!!


------解决方案--------------------
帮你顶..........
  相关解决方案
本站暂不开放注册!
内测阶段只得通过邀请码进行注册!
 
  • 最近登录:Fri Apr 28 08:22:52 CST 2017
  • 最近登录:Fri Apr 28 08:22:52 CST 2017
  • 最近登录:Fri Apr 28 08:22:52 CST 2017
  • 最近登录:Fri Apr 28 08:22:52 CST 2017
  • 最近登录:Fri Apr 28 08:22:52 CST 2017