如何使用 PHP 从设备接收 GPS 数据?

Posted

技术标签:

【中文标题】如何使用 PHP 从设备接收 GPS 数据?【英文标题】:How to receive GPS data from device with PHP? 【发布时间】:2015-05-18 10:40:26 【问题描述】:

我有一个车载 GPS 设备,我唯一可以更改的就是 IP 地址。

是否可以使用专用 IP 地址共享主机(这部分是可能的),然后有一个 php 脚本来获取正在发送的数据?

那么我的想法是什么:

GPS 设备将 GPS 数据发送到 IP 地址。 该 IP 地址有一个 PHP 脚本,可以提取数据并使用它。

应要求更详细一点。 有一个问题一模一样却没有答案:how-to-get-data-from-gps-and-send-to-server-and-how-save-to-database

这是一款带有标准 IP 地址的中国车载 GPS 设备。因此,它将数据发送到该 IP 地址。然后他们给了我们一个网站,我们可以在其中使用产品代码登录,我们可以看到 GPS 位置。

可以更改此设备中的 IP 地址。我找到了具有专用 IP 地址的共享主机,但这意味着 IP 地址只是替换了 URL,因此它就像一个 URL 一样工作,所以我不能更改服务器并安装类似 openGTS 的东西。

但我不知道这个设备正在发送什么样的数据(我不认为它只是 GET 或 POST 数据)。所以我想知道 GPS 是否正在将数据发送到 IP 地址,我是否必须在该服务器上使用 java 做一些特殊的事情,或者我能够使用 PHP 脚本来获取 GPS 设备发送的内容?一旦我得到数据,我就知道如何处理它。我只需要一个 PHP 脚本获取的数据。

【问题讨论】:

您好,欢迎来到 SO!您的问题有点不清楚,您需要我们的帮助是什么? - 我还建议阅读***.com/help/how-to-ask。 【参考方案1】:

没有我希望的捷径。对于将 TCP/UDP 数据发送到 IP 地址和端口的 gps 跟踪器设备,我们确实需要一个服务器。不会有 POST/GET 数据。服务器将通过需要解码的端口接收数据。 但它并没有我想象的那么复杂。即使没有任何 Java 知识,我也能够安装软件并根据自己的喜好对其进行操作。

我做了什么:

有一个 windows server (2012) 托管(6 个月免费),所以我可以 试试看。 下载了 opengts 并完全按照他们的说明手册进行操作。而且一点也不难。它工作起来没有太多头痛 一旦我到达一切正常的部分,我就可以使用该设备,它工作正常。当然,我们需要知道设备发送和解码的协议(数据),以便将其保存在数据库中。

【讨论】:

【参考方案2】:

你需要这个:

    电话(号码)(带 GPS)。 智能手机(Androir 并开发自己的 APP)-(像子服务器)。 带有 mysql(数据库)的(家庭服务器)或(WebServer)。 在您的服务器或网页中使用 PHP 的脚本(第 3 点)。

所以:

    (带 GPS 的电话号码)只需等待电话或其他东西发送“数据”。 (智能手机)从(带 GPS 的电话号码)获取数据。 仅使用(您自己的 android 应用程序)从您的(带 GPS 的电话号码)读取留言板,并使用(您自己的 Android 应用程序)处理“数据”。 从(留言板)获取(Lat)和(Lon)坐标的“字符串”或所有您需要的,并使用 HTTP 请求发送到您的(PHP 脚本)到您的(家庭服务器或网页)从您的(智能手机) 使用您的(自己的 Android 应用程序)。 使用您的(PHP 脚本)并保存在您的(MySQL 数据库)中。 ...您现在可以使用“数据”执行所有操作,例如使用其他 php 脚本和 google maps api 进行显示,或用于 java 上的桌面应用程序,或 Visual Basic 等...,或随心所欲。

注意: *不要无缘无故使用您的(智能手机),仅用于处理您想要的所有(电话号码)的“数据”使用您的(自己的Android APP)阅读带有代码的留言板,所以您的(智能手机)现在就像一个“迷你服务器” " 并且仅作为您的(带 GPS 的电话号码)和您的(家庭服务器或网页)中的(PHP 脚本)与(MySQL 数据库)之间的中介。

【讨论】:

【参考方案3】:

您需要使用数据库,创建 php 脚本(POST 查询)并在 GPS 位置更改时将查询更新到数据库中,而不是您可以使用另一个 php 脚本(GET 并返回 json 对象)从数据库访问该位置

【讨论】:

这是最简单的部分,但我的问题是,数据真的是 POST 还是 GET 数据。在互联网上阅读似乎是特殊的服务器数据,我们需要一个专用服务器并在该服务器上安装类似 open GTS 的东西。 当然,您需要在互联网上使用sql数据库的服务器,并且在数据库中您必须创建一个表来放置您的数据。 这又是一个简单的部分,但您知道大多数 gps 设备如何将数据发送到服务器吗?我怀疑的是 POST 还是 GET 数据?或者我真的需要一个服务器,我必须安装类似openGTS的东西,可以与java等一起使用???因为那时我认为我不能使用具有专用 IP 地址的共享主机。 不! ,你没听懂那我说什么。您从手机的 GPS 中获取数据(创建一个简单的应用程序)并将它们发送到服务器(通过服务器上的 php 页面的 SQL 数据库),这样当您需要它们时,服务器上就会有数据(纬度和经度和所有其他你想要的),即使你不明白我放了一个 Java for Android 和 PHP 页面的例子,否则它解释得更好,因为我不明白你想要什么。 我已经更新了这个问题。这是一个车载gps设备。所以它不是智能手机,很抱歉。【参考方案4】:

如果您有共享主机,您将只打开 80 端口。因此,在您的设备中,您需要在端口 80 上向该 IP 发出 HTTP 请求。

为了发出正确的 HTTP 请求,请阅读 RFC2616 (http://www.w3.org/Protocols/rfc2616/rfc2616.html) 以开始使用 HTTP 协议。

至少,您需要在 HTTP 请求中提供主机名和 URI。

在该 URI 上,您的 PHP 脚本将能够读取数据并对其进行处理。

【讨论】:

也就是说,如果我能够更改设备中的所有这些内容。但我能改变的只是IP地址。之后会发生什么我不清楚。 那么,简单的答案是:你不能。您需要 HTTP 连接才能向该 IP 进行 POST 或 GET。如果您无法控制,则需要查看设备连接到 IP 的端口,并在该 IP 上放置一个专用服务器,您可以在其中开发自己的设备通信协议。

以上是关于如何使用 PHP 从设备接收 GPS 数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 PHP 监听 TCP 端口? [关闭]

如何在Web服务器上接收GPS数据?

如何让蓝牙 RFCOMM 始终如一地工作?

如何在 WAMP/LAMP 上通过 PHP 接收 TCP 数据(不是 HTTP)?

如何从一个 android 设备检索 GPS 位置并将其实时提供给另一台 android 设备 [关闭]

当我使用 ionic 从 IOS 设备发送数据时,PHP 错误地接收到数据