这些是我的宣言..
Public fList As New List(Of Form)
Dim mNameList As New List(Of String)
Dim mList As New List(Of GMapMarker)
Dim cList As New List(Of Integer) 'recently added code
Dim hList As New List(Of String) 'recently added code
这是我的代码,我在列表中添加项目..
For Each dtrow In markerDtable.Rows
marker = New GMapMarkerGoogleGreen(New PointLatLng(dtrow("Latitude"), dtrow("Longitude")))
marker.ToolTipText = dtrow("MarkerName")
mNameList.Add(dtrow("MarkerName"))
cList.Add(dtrow("CameraID")) 'recently added code
我真的希望你得到我想说的话。 这对我来说真的很难。洛尔
无论如何,正如您所看到的,我为我的elements
添加List
我数据库中的每个数据。这段代码给了我需要的结果。在Form_Load
加载地图上的所有数据(标记)。如果我在表单加载时添加了另一个数据(name,Lat,Lng),则在地图上添加了另一个标记。
列表mNameList
代表标记名称列表而不是ID。只是名字..
到下一个代码..
For Each m In mNameList
For Each c In cList 'recently added code
If item.ToolTipText = m Then
Dim f As New Form2
fList.Add(f)
mList.Add(item)
With f
.Show()
.AxXHDec1.Camera = c 'recently added code
.AxXHDec1.Host = some ip 'recently added code
Dim p As New Point
p = item.LocalPosition + New Point(15, 30)
.Location = p
.Text = m
End With
Exit Sub
End If
Next
Next
现在这段代码在Marker_Click
事件上。因此,每次单击标记时,它会向我显示添加到fList
的表单,然后显示 表单将显示给特定标记的相应条件。
所以,如果我有一个名为“高尔夫俱乐部”的标记,将出现高尔夫俱乐部..
在这种情况下,我可以提出我想要的表格 回到我面临的问题..
这是我的数据库.. cList
必须包含 CameraID
所以如果事情进展顺利,如果我提出starmall
我应该从 Camera3 获取 starmall表单 +视频供稿
结果: OnMarker_Click
- >我点击的所有标记,只显示Camera1 ..虽然我想要的是拔出相机#取决于 MarkerName / Form.Text 我点击的内容..
提醒: 最近添加了代码 - 意味着这是我第一次尝试解决我的解决方案。其他代码工作正常。我只需要一些解决方法。
这是不是google的API ..我正在使用codeplex中的gmaps.net。
问题:如何在参考MarkerName时取出相机#?
向我提问,让你更清楚。
答案 0 :(得分:1)
请注意,
For Each c In cList 'recently added code
If item.ToolTipText = m Then
您没有显示此item
的来源。
无论如何,ToolTipText
和m
都独立于cameraID c
。因此cList
中的第一个c将始终匹配所有标记。这就是你获得camera1的原因。
我建议进行一些代码重构。你说所有列表都包含相同数量的项目,每个项目对应一个数据表中的标记行。所以,最好让一个小班的人说MarkerRow
。
class MarkerRow
dim MarkerName as string
dim cameraID as integer
dim hostAddress as string
dim marker as GMapMarker
end class
只创建一个列表,使其成为标记类型而不是字符串和整数
dim markers as new List(of MarkerRow)
现在迭代数据表并填充一个数据行中的每个项目
For Each dtrow In markerDtable.Rows
dim marker = New GMapMarkerGoogleGreen(New PointLatLng(dtrow("Latitude"), dtrow("Longitude")))
marker.ToolTipText = dtrow("MarkerName")
dim markerRow = new MarkerRow
with markerRow
.MarkerName = dtrow("MarkerName")
.cameraID = dtrow("CameraID")
.hostAddress = dtrow("hostAddress")
.marker = marker
end with
next
这样,当您需要标记时,您始终可以在一个地方获得所有信息
dim m as MarkerRow = markers(0) ' or whatever by any criteria you like
然后你会自动拥有
m.cameraID
m.marker
m.markerName
等等