首页 / 浏览问题 / 组件GIS / 问题详情
鼠标拾取的地图坐标有偏差
3EXP 2020年04月02日

求助:

产品: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;
}

感谢各位,求解答。

感觉刚才没发出去,再发一次。

...