代码:
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,谢谢!!!
------解决方案--------------------
帮你顶..........