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

地图xtreme java鼠标坐标转换为经纬度后再进行图层查询时出错!

热度:267   发布时间:2016-05-05 06:12:43.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,谢谢!!!

------解决方案--------------------
  帮你顶..........
  相关解决方案