在GIS開發中,我們會經常碰到地圖平移的操作,那麼這個操作在具體的編程實踐中怎麼去實現?
其實地圖平移只需要改變兩個繪圖參數就可以了,也就是左下角原點的坐標,地圖的比例尺不變。
具體的代碼如下:
CDC *pDC = GetDC();
CGISServerDoc* pDoc = GetDocument();
OGRPoint pt1 = pDoc->m_mapWnd.ScreenPointToGeoPoint(&m_ptOrigin,prarm);
OGRPoint pt2 = pDoc->m_mapWnd.ScreenPointToGeoPoint(&m_ptEnd,prarm);
//改變地圖的原點坐標
prarm->m_StartX -= pt2.getX() - pt1.getX();
prarm->m_StartY -= pt2.getY() - pt1.getY();
pDoc->m_mapWnd.DrawMap(pDC,prarm);
上面的m_ptOrigin是第一點屏幕坐標,m_ptEnd是第二點屏幕坐標。