阅读:1843回复:1
VC+MapX鹰眼实现3
<P> ///得到鼠标单击点的地理坐标<BR> sngX = PreX;<BR> sngY = PreY;<BR> double dblMapX1, dblMapY1;<BR> m_eagleMapX.ConvertCoord(;sngX, ;sngY, ;dblMapX1, ;dblMapY1, <BR> miScreenToMap);</P>
<P> ///得到鼠标当前点的地理坐标<BR> double dblMapX2, dblMapY2;<BR> m_eagleMapX.ConvertCoord(;X, ;Y, ;dblMapX2, ;dblMapY2, <BR> miScreenToMap);</P> <P> ///设置矩形的四角<BR> pntMap1.CreateDispatch(pntMap1.GetClsid());<BR> pntMap2.CreateDispatch(pntMap2.GetClsid());<BR> pntMap3.CreateDispatch(pntMap3.GetClsid());<BR> pntMap4.CreateDispatch(pntMap4.GetClsid());</P> <P> pntMap1.Set(dblMapX1, dblMapY2);<BR> pntMap2.Set(dblMapX2, dblMapY2);<BR> pntMap3.Set(dblMapX2, dblMapY1);<BR> pntMap4.Set(dblMapX1, dblMapY1);</P> <P> ///将矩形的四角加入点集中</P> <P> pntsMap.CreateDispatch(pntsMap.GetClsid());<BR> pntsMap.Add(pntMap1);<BR> pntsMap.Add(pntMap2);<BR> pntsMap.Add(pntMap3);<BR> pntsMap.Add(pntMap4);<BR> pntsMap.Add(pntMap1);</P> <P> styLine.SetLineColor(miColorBlack); ///定义样式的线条颜色<BR> styLine.SetLineWidth(1); ///定义样式的线条宽度<BR> styLine.SetLineStyle(3); ///虚线</P> <P> ///将导航图鹰眼层所有对象清空<BR> ftrs = m_eagleMapX.GetLayers().Item("EagleLayer").AllFeatures();<BR> for(int i = 1; i <= ftrs.GetCount(); i++)<BR> {<BR> m_eagleMapX.GetLayers().Item("EagleLayer").DeleteFeature(ftrs.Item(i));<BR> }</P> <P> ///在导航图鹰眼层画虚线矩形框,框出用户预选择的范围<BR> CMapXFeature ftrMap;<BR> COleVariant pntsVt, styVt;</P> <P> pntsVt.vt = VT_DISPATCH;<BR> pntsVt.pdispVal = pntsMap.m_lpDispatch;<BR> pntsVt.pdispVal->AddRef();</P> <P> styVt.vt = VT_DISPATCH;<BR> styLine.CreateDispatch(styLine.GetClsid());<BR> styVt.pdispVal = styLine.m_lpDispatch;<BR> styVt.pdispVal->AddRef();</P> <P> ftrMap = m_eagleMapX.GetFeatureFactory().CreateLine(pntsVt, styVt);<BR> m_eagleMapX.GetLayers().Item("EagleLayer").AddFeature(ftrMap);</P> <P> ///设置鼠标状态为"Move"<BR> strMouseState = "Move";<BR> }</P> <P> 还有,可以在OnSize里面设置一下鹰眼图的大小.</P> |
|
1楼#
发布于:2009-06-22 21:23
<img src="images/post/smile/dvbbs/em02.gif" /><img src="images/post/smile/dvbbs/em01.gif" />
|
|