phl61894589
路人甲
路人甲
  • 注册日期2009-07-13
  • 发帖数1
  • QQ
  • 铜币110枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1585回复:0

怎样给从数据库里导入的一系列经纬坐标依次连线啊~~跪求

楼主#
更多 发布于:2009-07-24 15:26
<P>如题,我是直接打开了mapx安装目录下的C++ sample里面的例子,打开运行后选择DAO绑定它默认的ACCESS数据库里的USCust经纬度坐标,可显示到地图上的就是一个个独立的点,怎样把相邻的点用线连起来啊? 之前我略知貌似有一个画线函数,可是它需要提供X1,Y1,X2,Y2,可是数据导入时一下完成的,怎样来加入这个函数啊?能否指点一下在下面的代码中应该怎样加入相关代码~在线苦等各位高手帮忙解答小弟苦恼,非常感谢~~</P>
<P>//申明<br>short Type;<br>VARIANT SourceData;<br>VARIANT Name;<br>VARIANT GeoField;<br>VARIANT BindLayer;<br>VARIANT Fields;<br>CString strName= "DAO Bind";</P>
<P>// set up optional parameters<br>// could also use COptionalVariant class from mapx.h</P>
<P>// will not be used<br>COptionalVariant SecondaryGeoField;</P>
<P>// let mapx auto detect geofield<br>// this is the same as using COptionalVariant<br>GeoField.vt = VT_BSTR;<br>GeoField.bstrVal =  CString("STATE").AllocSysString();</P>
<P>   //自己建立临时层</P>
<P>CMapXBindLayer bindLayer;<br>bindLayer.CreateDispatch(bindLayer.GetClsid());<br>bindLayer.SetLayerName("Customers");<br>bindLayer.SetRefColumn1("X");<br>bindLayer.SetRefColumn2("Y");<br>bindLayer.SetLayerType(miBindLayerTypeXY);</P>
<P>BindLayer.vt=VT_DISPATCH;<br>BindLayer.pdispVal=bindLayer.m_lpDispatch;<br>BindLayer.pdispVal->AddRef();</P>
<P>// use all fields with defaults<br>Fields.vt = VT_ERROR;<br>Fields.scode = DISP_E_PARAMNOTFOUND;</P>
<P>// set the name of our dataset<br>Name.vt = VT_BSTR;<br>Name.bstrVal = strName.AllocSysString();</P>
<P>// set up source data<br>// Note: it is best to keep the dao recordset around until mapx is done with it<br>Type = miDataSetDAO;<br>SourceData.vt = VT_DISPATCH;<br>SourceData.pdispVal = m_daoUSCust.m_pDAORecordset;</P>
<P>try {<br>  // now add the dataset to the datasets collection<br>  CMapXDataset ds = m_ctrlMapX.GetDatasets().Add(Type, SourceData, Name, GeoField, SecondaryGeoField, BindLayer, Fields, COptionalVariant());<br>}</P><img src="images/post/smile/dvbbs/em12.gif" />
[此贴子已经被作者于2009-7-24 15:30:54编辑过]
喜欢0 评分0
游客

返回顶部