在地图上实时跟踪地理纬度/经度
您希望在更新发生时实时更新地图(谷歌地图或其他)上的坐标实体(纬度/经度位置)。这是一篇博文,可能会让您朝着正确的方向开始:http: //blog.pubnub.com/streaming-geo-coordinates-from-mongodb-to-your-iphone-app-with-pubnub-using-websocket -sdk/ - 这使用 MongoDB 和 Ruby 而不是 PHP 和 MySQL。但是,在这种情况下,使用 PHP 和 MySQL 中的实时地图在 HTML 页面上使用以下详细信息进行设置很容易。还有一个视频:https ://vimeo.com/60716860
使用 MySQL 实时触发更新
首先,您需要使用 MySQL 触发器来推送纬度/经度坐标 -当 mysql 发生更改时调用推送器- 这使用 MySQL 触发器
或者作为替代方案,您可能希望使用 PHP 推送 SDK 直接使用 PHP 调用推送信号,如下所示:https ://github.com/pubnub/php#php-push-api
$pubnub->publish(array(
'channel' => 'live_map_coords',
'message' => array( 12.3482, 8.3344 )
));
在 JavaScript 中接收推送消息并在地图上显示更新
<script src=//pubnub.a.ssl.fastly.net/pubnub-3.4.5.min.js></script>
<script>(function(){
PUBNUB.init({
subscribe_key : 'demo'
}).subscribe({
channel : 'live_map_coords',
callback : function(lat_lon) { alert(lat_lon) }
});
})();</script>
一旦您有了一个map.html
包含上述代码的页面,您就可以alert(lat_log)
在地图上更改带有绘图坐标的消息弹出窗口。这是使用D3
JavaScript SVG 渲染框架绘制的完整地图示例: https ://github.com/stephenlb/pubnub-mongo-pipe/blob/master/phone/map.html
注意:这只是一个起点,并为您提供入门参考,使其变得简单易行,但根据您将采用应用程序的方向灵活。
拼凑实时地理地图的后续步骤
接下来,您将需要执行以下操作来完成该过程并将此处列出的所有单独组件连接在一起。
- 根据您的目的修改
map.html
页面以显示始终可见的点。请注意,在视频中,这些点是临时的信标,会迅速显示和消失。你会想让它们在地图上持续存在。这基本上是“让它看起来像你想要的那样”步骤。
- 决定如何以及何时从 PHP 或 MySQL 直接触发 TCP Socket Push 事件。 我会推荐 PHP 方法。