求助:
产品:iobjectscpp 9d 操作系统:win7 x64 开发环境:vs2013+qtvsaddin1.2.3(x86)
问题详细描述:
我在使用鼠标点击获取地图坐标时(投影坐标系的即可),比例尺小地图范围可以看到整个中国时,获取到的坐标有很大偏差,比例尺越大地图范围越小,偏差越小,当比例尺很大时,获取的点才准确(与idesktop中拾取功能的值比较)。
这是我的点击代码:
void XWZK::mousePressEvent(QMouseEvent* event)
{
if (event->button() == Qt::LeftButton)
{
QPoint pt(event->x(), event->y());
UGPoint2D MP = qMapControl->PixelToMap(pt);
qDebug() << "MP x=" << MP.x << "y=" << MP.y;
}
}
这是extensions4qt中的qmapcontrol里pixeltomap的代码:
UGPoint2D QMapControl::PixelToMap(const QPoint &point)
{
UGMap* pMap = this->GetMap();
UGDrawCache &drawing = pMap->GetDrawing()->m_DrawCache;
UGPoint DP(point.x(), point.y());
UGPoint2D LP(0,0);
drawing.DPtoLP(&DP, &LP, 1);
UGPoint2D MP(0, 0);
pMap->GetDrawing()->m_DrawParam.LPtoMP(LP, MP);
return MP;
}
感谢各位,求解答。
感觉刚才没发出去,再发一次。