fit4u
路人甲
路人甲
  • 注册日期2004-07-30
  • 发帖数16
  • QQ
  • 铜币176枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:2193回复:6

怎样通过数据库绑定创建线图层并显示线图元?谢谢

楼主#
更多 发布于:2004-09-23 21:47
<P>我的意思是通过数据库绑定图层 并创建线图元
例子都是点图元的 点图元只要x,y坐标就能确定 但是线图元需要x1,x2,y1,y2而绑定 就是说,
bindlayerobject.refcolumn1,2分别是点图元的经纬度
那线图元需要2个点坐标才能确定 怎么绑定呀?
谢谢</P>
[此贴子已经被作者于2004-9-24 8:03:57编辑过]
喜欢0 评分0
gzmslinzy
路人甲
路人甲
  • 注册日期2004-09-08
  • 发帖数6
  • QQ
  • 铜币132枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2004-09-24 20:37
<P><FONT color=#000066><B>fit4u</B></FONT> :</P><P> 你好,你肯定会在VC中,mapx中指定图层怎么通过ADO与SQL连接?</P><P><TABLE cellPadding=0 cellSpacing=0 style="WORD-BREAK: break-all" width="95%"><TR><TD align=left vAlign=top width=32></TD><TD 0px; WIDTH: 100%; WORD-WRAP: break-word"><FONT color=#333333 face=宋体>void zjgisView::OnToolUsed(short ToolNum,double X1,double Y1,double X2,double Y2,double Distance,BOOL Shift,BOOL Ctrl,BOOL* EnableDefault)
{  

CString str;
CMapXPoint pt;
CMapXFeatures fs;
CMapXFeature f;
pt.CreateDispatch(pt.GetClsid());
pt.Set(X1,Y1);
str.Format("Tool=%d,[%f,%f],[%f,%f],dist=%f,%s,%s\n",ToolNum,X1,Y1,X2,Y2,Distance,(Shift)? "Shift":" ",(Ctrl)? "Ctrl-": " ");
TRACE(str);
<P>SetRedraw(false);
  
if(ToolNum==MYTOOL_INFO)
{
dlg.m_ctrList.ResetContent();

try
{
if(m_ctrlMapX.GetDatasets().GetCount()==0)
{BSTR ColName;
 VARIANT sd,LayerName,FieldName,pRecord;
            CMapXLayer layer;      
            layer =m_ctrlMapX.GetLayers().Item(1);
 sd.vt = VT_DISPATCH;
sd.pdispVal = layer.m_lpDispatch;
sd.pdispVal->AddRef();
CString strLayername=m_ctrlMapX.GetLayers().Item(1).GetName(); CString sql=_T("SELECT * FROM 光点分布");            
pRs->Open((_variant_t)sql,(IDispatch*pConn,adOpenDynamic,adLockOptimistic,adCmdText);
pRs->GetFields()->Item[long(0)]->get_Name(;ColName);
dataset =m_ctrlMapX.GetDatasets().Add(miDataSetADO,pRs,ColName,sd);
fieldcount=dataset.GetFields().GetCount();}
fs=m_ctrlMapX.GetLayers().Item(1).SearchAtPoint(pt);
if(fs.GetCount()!=1)
{
return;}
f=fs.Item(1);
COleVariant vRow;
COleVariant vVal;
vRow.vt=VT_DISPATCH;
vRow.pdispVal=f.m_lpDispatch;
vRow.pdispVal->AddRef();
CString strtemp;
for(long i=1;i<=fieldcount;i++)
{
strtemp=dataset.GetFields().Item(i).GetName();
strtemp+=_T(":");
vVal=dataset.GetValue(vRow,COleVariant(i));
if(vVal.vt!=VT_NULL)
{
vVal.ChangeType(VT_BSTR);
strtemp+=vVal.bstrVal;
}
dlg.m_ctrList.AddString((LPCTSTR)strtemp);
}
dlg.UpdateData(false);
dlg.ShowWindow(SW_SHOW);
}

catch(COleDispatchException *e)
{
e->ReportError();
e->Delete();
}
catch(COleException *e)
{
e->ReportError();
e->Delete();
}
}</P><P>SetRedraw(true);</P><P>}</P><P>dataset =m_ctrlMapX.GetDatasets().Add(miDataSetADO,pRs,ColName,sd);
我这一句有错误啊,都说我的参数设置类型不对啊,该如何设置啊,这段程序是要显示信息工具。就是pRs记录指针这个参数和绑定图层sd这个参数不知该如何设置?</P></FONT></TD></TR></TABLE>
</P>
举报 回复(0) 喜欢(0)     评分
fit4u
路人甲
路人甲
  • 注册日期2004-07-30
  • 发帖数16
  • QQ
  • 铜币176枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2004-09-25 08:37
<P>对不起</P><P>我用delphi 但是我也会经常碰到这样的问题</P><P>请查参数表 datasets.add 的参数具体到vc中到底怎么定义</P><P>在前面文章中有个中文help 好像里面又vc的例子</P>
举报 回复(0) 喜欢(0)     评分
fit4u
路人甲
路人甲
  • 注册日期2004-07-30
  • 发帖数16
  • QQ
  • 铜币176枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2004-09-25 08:38
<P>现在vb+mapx的例子比较多</P><P>vc delphi的确实不多</P><P>参数类型什么的就比较麻烦了</P><P>+u呀~~~~</P>
举报 回复(0) 喜欢(0)     评分
gzmslinzy
路人甲
路人甲
  • 注册日期2004-09-08
  • 发帖数6
  • QQ
  • 铜币132枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2004-09-25 10:54
谢谢 fit4u 了,是啊,用VC开发mapx资料太少了!!
<TABLE cellPadding=4 cellSpacing=0 width="100%">

<TR>
<TD  vAlign=center width=*>  <FONT color=#000066><B>fit4u</B></FONT> </TD></TR></TABLE>你能给delphi的例子给来参考考吗?我是用VC,但是delphi也有点启发的。
举报 回复(0) 喜欢(0)     评分
gzmslinzy
路人甲
路人甲
  • 注册日期2004-09-08
  • 发帖数6
  • QQ
  • 铜币132枚
  • 威望0点
  • 贡献值0点
  • 银元0个
5楼#
发布于:2004-09-25 11:01
我改成这样可以通过编译,并且可以运行。
<P>我改成这样可以通过编译,并且可以运行</P>
<P> dataset =layer.GetDatasets().Add(miDataSetADO,(_variant_t)(IDispatch*)pRs,(char*)_bstr_t(ColName),false);</P>
<P>但是弹出对话框说"operation is not allow on the datasets collection"  不能在数据集上进行这个操作啊</P>
<P>我关键字段都设置为主键了,并且在mapinfo里设置图层该字段也为索引了。但还是有问题啊</P>
<P>我怀凝是不是我的记录指针转换有错,(_variant_t)(IDispatch*)pRs????</P>
举报 回复(0) 喜欢(0)     评分
hsxljwht
路人甲
路人甲
  • 注册日期2004-10-06
  • 发帖数59
  • QQ
  • 铜币253枚
  • 威望0点
  • 贡献值0点
  • 银元0个
6楼#
发布于:2004-10-10 06:12
study
举报 回复(0) 喜欢(0)     评分
游客

返回顶部