wavvylia
路人甲
路人甲
  • 注册日期2003-07-28
  • 发帖数384
  • QQ
  • 铜币555枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:2042回复:4

我的代码错在那里?

楼主#
更多 发布于:2003-08-21 11:57
我想实现很简单的功能:就是选中面或是点,这个面(点)就闪烁3次,但是我用自己做的Shape文件就实现不了,而用别人的就没问题!
那位兄弟帮忙看一下?DATA压缩包中的有两个文件:一个是CAPITALS.SHP,另一个是out.SHP(这个是我自己做的),代码如下(VB6):


Option Explicit
Dim recs As MapObjects2.Recordset
Dim fld As MapObjects2.Field
Dim lyr As New MapObjects2.MapLayer
Dim np As MapObjects2.Point
Dim sym As New MapObjects2.Symbol

Private Sub Form_Load()

   Set lyr = Map1.Layers(0)
  
   sym.Color = moLightYellow
   sym.Outline = True
   sym.OutlineColor = moRed
   sym.Style = moSolidFill
End Sub

Public Sub Search(X As Single, Y As Single)
  
   Dim isNotNull As Boolean
  
   On Error Resume Next
   Set lyr = New MapLayer
   Set lyr = Map1.Layers(0)
  
   Set np = Map1.ToMapPoint(X, Y)
   Set recs = lyr.SearchByDistance(np, 1, "")
  
   Set np = Nothing
   Set np = recs.Fields("shape").Value
   Map1.FlashShape recs.Fields("shape").Value, 3
   Map1.TrackingLayer.Refresh True
  
End Sub

Private Sub Map1_AfterTrackingLayerDraw(ByVal hDC As stdole.OLE_HANDLE)
   If Not np Is Nothing Then
      Map1.DrawShape np, sym
   End If
End Sub

Private Sub Map1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

   Search X, Y

End Sub

<a href="attachment/200382111565594609.rar">200382111565594609.rar</a>
喜欢0 评分0
sulin
路人甲
路人甲
  • 注册日期2003-07-28
  • 发帖数158
  • QQ
  • 铜币501枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2003-08-21 12:35
MO中的例子MoView中有代码
举报 回复(0) 喜欢(0)     评分
wavvylia
路人甲
路人甲
  • 注册日期2003-07-28
  • 发帖数384
  • QQ
  • 铜币555枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2003-08-21 12:52
多谢老兄提醒!
举报 回复(0) 喜欢(0)     评分
atonwong
路人甲
路人甲
  • 注册日期2003-07-30
  • 发帖数49
  • QQ316197
  • 铜币281枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2003-08-21 15:32
首先说明一点是你的代码一点问题也没有!!!
Set recs = lyr.SearchByDistance(np, 1, "")
这一句,因为你的图形范围较大,两点间的距离就有50000多单位,你很难把鼠标点到1个单位以内,所以你只需要把1改成10000试试,应该可以了吧
即:Set recs = lyr.SearchByDistance(np, 10000, "")
还有一个办法是把图形放大一点来选就可以选中了!
email:soft120@163.com QQ:316197 很高兴与大家一起交流探讨GIS技术!!!!
举报 回复(0) 喜欢(0)     评分
wavvylia
路人甲
路人甲
  • 注册日期2003-07-28
  • 发帖数384
  • QQ
  • 铜币555枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2003-08-21 16:40
问题解决了,多谢两位兄台!
举报 回复(0) 喜欢(0)     评分
游客

返回顶部