sunke22
路人甲
路人甲
  • 注册日期2004-08-17
  • 发帖数3
  • QQ
  • 铜币119枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:2321回复:7

VC+MO中如何进行buffer分析

楼主#
更多 发布于:2004-10-06 20:08
<TABLE  width="90%" border=0>

<TR>
<TD  width="100%"><IMG src="http://www.gischina.com/bbs/face/em01.gif" border=0> <B>VC+MO中如何进行buffer分析</B>
<FONT color=#dfebff>--------------------------------------------------------------------</FONT>
已经通过查询函数取的用户选择的直线line;
CMoRectangle rect;
VARIANT vRect;
rect = line.GetExtent();
vRect.vt = VT_DISPATCH;
vRect.pdispVal = rect;
CMoPolygon* poly = new CMoPolygon(line.Buffer(1000,vRect));
但是poly为空,请问有没有作个缓冲区分析的高手请指点</TD></TR></TABLE>
喜欢0 评分0
qinchuanheng
路人甲
路人甲
  • 注册日期2007-01-05
  • 发帖数23
  • QQ
  • 铜币165枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2008-05-06 01:18
<P>最近在想做一个类似的东西,看了以后有点启发哦~~~~~~~~</P>
<P>多谢了</P>
举报 回复(0) 喜欢(0)     评分
袁绍伦
路人甲
路人甲
  • 注册日期2003-08-08
  • 发帖数654
  • QQ164646905
  • 铜币1336枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2004-10-10 16:30
<P>我做的!!</P><P>vector<CMoPolygon> CreateBuffer(CMoRecordset; BufferRecords, double; BufferTolerance, int; BufferLayerStyle, string; BufferUnits)
{
 vector<CMoPolygon> TempVectorPoly;
 CComVariant Extent(m_map.GetFullExtent().m_lpDispatch);
 if (BufferUnits == "千米")
  BufferTolerance = 1000 * BufferTolerance;
  
 switch (BufferLayerStyle)
 {
 case 0://点图层
  {
   BufferRecords.MoveFirst();
   while (!BufferRecords.GetEof())
   {
    CMoPoint point(BufferRecords.GetFields().Item(CComVariant("Shape")).GetValue().pdispVal);
    CMoPolygon PolygonBuffer(point.Buffer(BufferTolerance,Extent));
    TempVectorPoly.push_back(PolygonBuffer);
    BufferRecords.MoveNext();
   }
   break;
  }
 case 1://线图层
  {
   BufferRecords.MoveFirst();
   while (!BufferRecords.GetEof())
   {
    CMoLine line(BufferRecords.GetFields().Item(CComVariant("Shape")).GetValue().pdispVal);
    CMoPolygon PolygonBuffer(line.Buffer(BufferTolerance,Extent));
    TempVectorPoly.push_back(PolygonBuffer);
    BufferRecords.MoveNext();  
   }
   break;
  }
 case 2://面图层
  {
   BufferRecords.MoveFirst();
   while (!BufferRecords.GetEof())
   {
    CMoPolygon Polygon(BufferRecords.GetFields().Item(CComVariant("Shape")).GetValue().pdispVal);
    CMoPolygon PolygonBuffer(Polygon.Buffer(BufferTolerance,Extent));
    TempVectorPoly.push_back(PolygonBuffer);
    BufferRecords.MoveNext();  
   }
   break;
  }
 }
 return TempVectorPoly;
}</P>
愿意和大家交朋友! QQ:47559983 MSN:shaolun_yuan@hotmail.com eMail:shaolun-yuan@163.com
举报 回复(0) 喜欢(0)     评分
mao__mao_
路人甲
路人甲
  • 注册日期2004-09-19
  • 发帖数41
  • QQ
  • 铜币219枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2004-10-10 16:03
<P>我还是不太懂,我是这么写的</P><P>CMoSymbol symBuffer;
   symBuffer.CreateDispatch(TEXT("MapObjects2.Symbol"));
   symBuffer.SetSymbolType(moFillSymbol);
   symBuffer.SetStyle(moLightGrayFill);
   symBuffer.SetColor(Color);
   symBuffer.SetOutline(FALSE);</P><P>   CMoPolygon shpBuffer;
   VARIANT va;
   VariantInit(;va);
   va.vt=VT_DISPATCH;</P><P>    va.pdispVal=g_searchLine.GetExtent();     //此时g_searchLine已赋值
    shpBuffer=g_searchLine.Buffer(100,va);</P><P>为什么我执行到最后一句总是出错呢?应该怎么做?
   </P>
举报 回复(0) 喜欢(0)     评分
袁绍伦
路人甲
路人甲
  • 注册日期2003-08-08
  • 发帖数654
  • QQ164646905
  • 铜币1336枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2004-10-09 17:01
建议:rect 取 m_map.GetFullExtent();
愿意和大家交朋友! QQ:47559983 MSN:shaolun_yuan@hotmail.com eMail:shaolun-yuan@163.com
举报 回复(0) 喜欢(0)     评分
lixaokui
路人甲
路人甲
  • 注册日期2003-12-25
  • 发帖数768
  • QQ28796446
  • 铜币27枚
  • 威望0点
  • 贡献值0点
  • 银元0个
5楼#
发布于:2004-10-08 09:05
<img src="images/post/smile/dvbbs/em04.gif" /><img src="images/post/smile/dvbbs/em04.gif" />
西门吹血,有了鼓风机,就不用吹啦!
举报 回复(0) 喜欢(0)     评分
sunke22
路人甲
路人甲
  • 注册日期2004-08-17
  • 发帖数3
  • QQ
  • 铜币119枚
  • 威望0点
  • 贡献值0点
  • 银元0个
6楼#
发布于:2004-10-07 10:29
<P>多谢!</P>
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
7楼#
发布于:2004-10-06 21:20
<P><a href="http://gisempire.com/bbs/dispbbs.asp?BoardID=39;ID=5491" target="_blank" >http://gisempire.com/bbs/dispbbs.asp?BoardID=39;ID=5491</A></P><P>这是一个vb的例子</P>
GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
游客

返回顶部