毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

GPS应用论文 第15页

更新时间:2009-4-19:  来源:毕业论文
gps毕业论文
 数字地图的系统的实现
4.2.1  新建项目
首先在Visual Studion 2005中新建我们的项目。
选择“Visual Studion 2005”的“Windows应用程序”,名称命名为“map”,点击“确定” ,即可完成项目的新建。

       
4.2.2  与数据库连接
   在靠界面的右边解决方案资源管理器上下面,对map点右键出现“新添加(D)”选择新建“新建项(W)”在其中选择“类”,取名“db.vb”。选择添加,完成。在工程中找到“db.vb”输入连接数据库的代码,即可与数据库连接。
   代码如下:
   Public Class db
        Private connStr As String
        751com.cn
        Public Sub New()
            connStr = "Data Source=(local);Initial Catalog=map;Integrated Security=True"
        End Sub


4.2.3 系统界面的实现
  在建立map项目时,已经生成了一个Windows窗体,将其命名为地图查询。即为我们所作系统的界面。添加4个Button ,4个Label,4个TextBox。
   4个Button分别为查询 清除 查询最短路径 清除。
   4个Label分别是输入经度 输入纬度 输入起点街道名 输入站点街道名。
   在输入经纬度时,限制用户只能输入阿拉伯数字0~9和小数点,具体代码如下:
Private Sub txtJingdu_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtJingdu.KeyPress
        If e.KeyChar >= "0" And e.KeyChar <= "9" Or e.KeyChar = Chr(Keys.Back) Or e.KeyChar = Chr(46) Then
            e.Handled = False
        Else
            e.Handled = True
        End If
    End Sub
   4个TexBox分别输入4个Label对应值的对话框。
设计完成时,界面如图4.5示。 
 图 4.5

4.2.4 系统程序的实现
     系统主要是分2个大部分,一个是确定通过输入点的经度和纬度,来确定该点在哪条街道上。另一部分,是通过输入起点街道和终点街道,来通过迪杰斯特拉(Dijkstra)算法来查询出最短路径,并显示。
   首先介绍下第一部分。通过输入点的经度和纬度来判断该点在哪条街道上。算法流程图如图4.6所示
 
图4.6
在此算法中,判断点是否在街道上的思想如下:
   首先,在存储街道的时候,我们将有弯道的街道分成若干直到存储,拐点就变成了了路口。在视图street_crossing中,将街道和它所属的2个端点联系了起来。在判断该点是否在某条街道上时,就成了判断一个点是否在一条直线上。这里采取了比斜率的方法。将输入的该点的经度和纬度,以及道路2个端点的经度和纬度看成3个点的坐标,利用jing1 * wei2否等于jing2 * wei1判断该点是否在当前所取得街道上(其中jing1,jing2分别表示该点的经度值与2个端点经度值的差值,wei1,wei2分别表示该点的纬度值与2个端点纬度值的差值)jing1 * jing2 >= 0是保证该点是在此直线街道上,而不是在该街道的直线延长线上。代码如下:
Private Sub btnSearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSearch.Click
        Dim strSql As String = "select * from street_crossing "
        Dim strSql1 As String
        Dim jing1 As Single
        Dim wei1 As Single
        Dim jing2 As Single
        Dim wei2 As Single
        Dim ds As New DataSet
        Dim dbobj As New ConnSqlServer.db
        Dim dr As System.Data.SqlClient.SqlDataReader
        If txtJingdu.Text = "" Or txtWeidu.Text = "" Then
            MessageBox.Show("经度或纬度不能为空!")
            Exit Sub
        End If
        dr = dbobj.DataReader(strSql)
        While (dr.Read)

            jing1 = dr("j1") - txtJingdu.Text
            wei1 = dr("w1") - txtWeidu.Text
            jing2 = txtJingdu.Text - dr("j2")
            wei2 = txtWeidu.Text - dr("w2")
            If (jing1 * wei2 = jing2 * wei1 And jing1 * jing2 >= 0) Then
                strSql1 = "select street_name from street_crossing where id =" & dr("id") & ""
                'dbobj.ReturnDataSet(strSql1, ds)
                dr = dbobj.DataReader(strSql1)
                dr.Read()
                labStreet.Text = dr("street_name")
                'Me.DataGridView1.DataSource = ds.Tables(0)
                Exit Sub
            End If
        End While
        MessageBox.Show("此处不在任何街道上!")

 << 上一页  [11] [12] [13] [14] [15] [16] [17] [18] 下一页

GPS应用论文 第15页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。