juaze
路人甲
路人甲
  • 注册日期2007-05-09
  • 发帖数7
  • QQ
  • 铜币136枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1843回复:1

VC+MapX鹰眼实现3

楼主#
更多 发布于:2007-05-16 21:08
<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>
喜欢0 评分0
hailuolan
路人甲
路人甲
  • 注册日期2009-03-31
  • 发帖数2
  • QQ
  • 铜币105枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2009-06-22 21:23
<img src="images/post/smile/dvbbs/em02.gif" /><img src="images/post/smile/dvbbs/em01.gif" />
举报 回复(0) 喜欢(0)     评分
游客

返回顶部