inzafay
路人甲
路人甲
  • 注册日期2004-08-24
  • 发帖数46
  • QQ
  • 铜币349枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1942回复:6

求救啊:总统 为什么我自定义的画线工具画出的线只有在缩放到很小的时候才可以显示~?

楼主#
更多 发布于:2005-07-21 16:21
<P>求救啊:为什么我自定义的画线工具画出的线只有在缩放到很小的时候才可以显示~?</P>
喜欢0 评分0
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15946
  • QQ554730525
  • 铜币25338枚
  • 威望15363点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
1楼#
发布于:2005-07-21 16:46
<P>不知道你是怎么画的</P><img src="images/post/smile/dvbbs/em02.gif" />
举报 回复(0) 喜欢(0)     评分
inzafay
路人甲
路人甲
  • 注册日期2004-08-24
  • 发帖数46
  • QQ
  • 铜币349枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2005-07-21 16:59
<P>自定义的工具,ITool_MouseDown事件是这样写的:</P>
<P>If (m_pHookHelper.ActiveView Is Nothing) Then Exit Sub<BR>If m_pHookHelper.FocusMap.LayerCount = 0 Then Exit Sub<BR>  Dim pLayer As ILayer<BR>  Dim lyCount As Integer<BR>  Dim pFeaLayer As IFeatureLayer<BR>  For lyCount = 0 To m_pHookHelper.FocusMap.LayerCount - 1<BR>   Set pLayer = m_pHookHelper.FocusMap.Layer(lyCount)<BR>   If pLayer.Name = FrmSelLyr.ComboSelLyr.Text Then<BR>      Set pFeaLayer = pLayer<BR>      Set m_pFeaClass = pFeaLayer.FeatureClass<BR>      Exit For<BR>   End If<BR>  Next<BR>  If m_pFeaClass Is Nothing Then<BR>    MsgBox "您还没有选择要编辑的图层!", vbExclamation, "提示"<BR>    Exit Sub<BR>  End If<BR>  If m_pFeaClass.ShapeType <> esriGeometryPolyline Then<BR>   MsgBox "您选择的图层不是线图层,不能添加线地物!", vbExclamation, "提示"<BR>   Exit Sub<BR>  End If<BR>  Dim pRubberLine As IRubberBand<BR>  Set pRubberLine = New RubberLine<BR>  Set m_pLine = pRubberLine.TrackNew(m_pHookHelper.ActiveView.ScreenDisplay, Nothing)<BR>  m_bInUse = True<BR>  Dim pActiveView As esriCarto.IActiveView<BR>  Set pActiveView = m_pHookHelper.FocusMap<BR>  <BR>    <BR>  Dim pGeometry As IGeometry<BR>  Set pGeometry = m_pLine<BR>  Dim pWSEdit As IWorkspaceEdit<BR>  Dim pDataSet As IDataset<BR>  Set pDataSet = m_pFeaClass<BR>  Set pWSEdit = pDataSet.Workspace<BR>  pWSEdit.StartEditOperation<BR>    Dim pfea As IFeature<BR>    Set pfea = m_pFeaClass.CreateFeature<BR>    With pfea<BR>     Set .Shape = m_pLine<BR>     .Store<BR>    End With<BR>  Dim pInvalidArea As esriGeoDatabase.IInvalidArea<BR>  Set pInvalidArea = New esriCarto.InvalidArea<BR>  Set pInvalidArea.Display = pActiveView.ScreenDisplay<BR>  pInvalidArea.Add pfea<BR>  <BR>  pWSEdit.StopEditOperation<BR>  pInvalidArea.Invalidate esriAllScreenCaches</P>
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15946
  • QQ554730525
  • 铜币25338枚
  • 威望15363点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
3楼#
发布于:2005-07-21 17:37
<P>坐标有没进行转换?</P>
举报 回复(0) 喜欢(0)     评分
wavvylia
路人甲
路人甲
  • 注册日期2003-07-28
  • 发帖数384
  • QQ
  • 铜币555枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2005-07-24 18:10
应该进行坐标转换的。
举报 回复(0) 喜欢(0)     评分
inzafay
路人甲
路人甲
  • 注册日期2004-08-24
  • 发帖数46
  • QQ
  • 铜币349枚
  • 威望0点
  • 贡献值0点
  • 银元0个
5楼#
发布于:2005-07-25 21:42
<P>怎么转化呀?我用到的tracknew,不需要进行点的坐标转化啊~</P>
<P>我的思路就是先tracknew一条线段,然后提取它的geometry,作为新feature的geometry进行保存!</P>
<P>但画出的线可以选择,但是在非选择状态下,确是不可见的!</P>
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15946
  • QQ554730525
  • 铜币25338枚
  • 威望15363点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
6楼#
发布于:2005-07-26 09:29
<P>每个geometry都有空间属性需要设置</P>
<P>当你把tracklayer上的东西转成geometry的时候,坐标也需要转化下</P>
举报 回复(0) 喜欢(0)     评分
游客

返回顶部