javascript - 自动上传GPS位置

标签 javascript asp.net gps

通常我更喜欢潜伏在论坛中寻找答案,但我找不到答案,所以这里......

我有一个用 ASP 为客户编写的自定义车队管理系统,他们请求 GPS 功能,以便他们可以摆脱每月的卫星服务。我为卡车驾驶室内的笔记本电脑购买了一个串行 GPS 加密狗,并为卡车司机的笔记本电脑编写了一个简短的 Windows 服务来读取和转换数据。目前,我每 10 秒就会用翻译后的位置覆盖一个文本文件。 (这样做的原因是 Google API 显然无法识别 Windows 7 中的外部位置传感器。)

但是现在,我需要将该信息发送到服务器,以便调度员可以更新位置,并且卡车司机可以在客户处标记他们的位置,以供可能需要覆盖其路线的其他司机使用。我想我必须使用 JavaScript,但希望有人能给我指明正确的方向。我尝试将一个值预填充到 html 文件上传小部件中,但显然这不起作用

或者我可以将文件保存在临时 Internet 文件中并通过 ASP 获取它吗?使用套接字推送到服务器会更好吗?我想合并我已经写好的网站...

我不需要任何代码,我只需要指明正确的方向!

谢谢!

最佳答案

好的,明白了。感谢 dmarruco 建议 REST,它激励我使用类似的 xml 解决方案。客户端如下:

Imports System.IO
Imports System.IO.Ports
Imports System.Text
Imports System.Xml
Imports System.Web
Imports System.Net


Module Module1

Sub Main()
    Dim myport As SerialPort = New SerialPort("COM3", "4800", Parity.None, 8, StopBits.One)
    Dim availableSerialPorts As System.Collections.ObjectModel.ReadOnlyCollection(Of String) = My.Computer.Ports.SerialPortNames
    If availableSerialPorts.Contains("COM3") Then
        Dim dstring As String = ""
        Try
            If myport.IsOpen Then
                myport.Close()
            End If
            myport.Open()
            System.Threading.Thread.Sleep(1500)
            Dim datastring As String = myport.ReadExisting
            dstring += datastring
            myport.Close()
        Catch ex As Exception
            MsgBox(ex.ToString)
        Finally
            If myport IsNot Nothing Then
                myport.Close()
            End If
        End Try

        Dim loc As Integer
        Dim search As String = "$GPGGA"
        loc = InStr(1, dstring, search, CompareMethod.Text)

        Dim latstart As Integer = loc + 18
        Dim lonstart As Integer = loc + 30
        Dim lat As String = Mid(dstring, latstart, 9)
        Dim lon As String = Mid(dstring, lonstart, 10)
        Dim gpgga As String = Mid(dstring, loc, 50)

        If Left(lat, 1) <> "," And Left(lon, 1) <> "?" Then

            Dim HH As String = Left(lat, 2)
            Dim mmmm As String = Mid(lat, 3, 7)
            Dim mconv As String = Val(mmmm) / 60
            mconv = mconv.Replace("0.", "")
            Dim latcoord As String = HH & "." & mconv
            Dim lH As String = Left(lon, 3)
            Dim lmm As String = Mid(lon, 4, 7)
            Dim lmC As String = Val(lmm) / 60
            lmC = lmC.Replace("0.", "")
            Dim loncoord As String = "-" & lH & "." & lmC
            Dim xmldoc As New XmlDocument
            Dim xmldec = xmldoc.CreateXmlDeclaration("1.0", "ASCII", "")
            Dim outx As XmlElement
            outx = xmldoc.CreateElement("Location")
            xmldoc.AppendChild(outx)
            Dim root As XmlElement = xmldoc.DocumentElement
            xmldoc.InsertBefore(xmldec, root)
            Dim xmlat As XmlElement
            xmlat = xmldoc.CreateElement("lat")
            xmlat.InnerText = latcoord
            outx.AppendChild(xmlat)

            Dim xmlon As XmlElement
            xmlon = xmldoc.CreateElement("lon")
            xmlon.InnerText = loncoord
            outx.AppendChild(xmlon)
            Dim machineid As String = "1" 'arbitrary for testing purposes
            Dim xmach As XmlElement
            xmach = xmldoc.CreateElement("MID")
            xmach.InnerText = machineid
            outx.AppendChild(xmach)

            Dim url As String = "http://fakeurl.com/getxml.aspx" 'the receiving page goes here
            Dim wreq As HttpWebRequest = DirectCast(HttpWebRequest.Create(url), HttpWebRequest)
            Dim encoding As New ASCIIEncoding()
            Dim bytestowrite As Byte() = encoding.GetBytes(xmldoc.ToString)
            wreq.Method = "POST"
            wreq.ContentLength = bytestowrite.Length
            wreq.ContentType = "text/xml"
            Dim mystream As Stream = wreq.GetRequestStream()
            mystream.Write(bytestowrite, 0, bytestowrite.Length)
            mystream.Close()

        Else
            MsgBox("No Fix")
        End If
    Else
        MsgBox("Disconnected")
    End If
End Sub

End Module

请原谅 try/catch,这是我发布之前的测试代码。

关于javascript - 自动上传GPS位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19636994/

相关文章:

asp.net - SQL Server 用户定义的表类型和 .NET

xml - 如何从 GPX 文件计算距离?

iphone - 确定用户位置的合理时间长度 iPhone

javascript - 如何从 JavaScript 调用 REST Web 服务 API?

php - 使用 PHP 将 Curl 检索到的 HTML 字符串转换为 JSON,使用 AJAX 服务

javascript - 从 Rails 中的 HTML 元素获取内容

c# - 多级 web.config 转换

javascript - 将 datetimepicker 的最小日期设置为另一个 datetimepicker 的选定日期

objective-c - 将 GPS 坐标映射到图像并在其上绘制一些 GPS 点

javascript - Google Maps API v3 延迟从 XML 中删除标记?