Laravel - 在视图中获取位置并使用它来对同一视图中的帖子进行排序

时间:2017-01-11 19:00:35

标签: javascript php laravel coordinates laravel-blade

当用户进入我的网站时,他访问的路线为'/',控制器为@getDashboard,视图为dashboard.blade.php。在dashboard.blade.php我使用html5地理定位来确定用户lat& lng,之后我将它们发送到@getDashboard并从那里决定我应该向哪个用户示例显示哪些帖子:
如果用户在克罗地亚境外,我不希望他看到克罗地亚的帖子。显然,由于我已经在发送lat& amp;之前已加载仪表板,因此无法工作。 LNG。 我想出了一些解决方案,但我希望你告诉我哪一个是最好的,或者它是否有效。

可能的解决方案:

  • 通过lat& amp; Javascript排序在视图中
    • 优点:可以工作
    • 缺点:这意味着我将加载世界上的所有帖子,然后决定显示/隐藏哪一个
  • '/'之前加载并自动提交lat& amp; lng到@getDashboard
    • 优点:不会加载所有内容
    • 缺点:看起来不是一个好的解决方案,如果一个人走出克罗地亚,该程序在我的网站完全刷新之前就不会知道。

如果有什么更好的,我确定有,请告诉我。
感谢。

1 个答案:

答案 0 :(得分:0)

所以你的html5地理位置应该给你拉特和纵向坐标...现在每个帖子都需要一个纬度和纵向坐标来比较它。

问题是精确的坐标不起作用,因此您需要使用一些数学将事物转换为半径。

lat=asin(sin(lat1)*cos(d)+cos(lat1)*sin(d)*cos(tc))
IF (cos(lat)=0)
 lon=lon1      // endpoint a pole
ELSE
 lon=mod(lon1-asin(sin(tc)*sin(d)/cos(lat))+pi,2*pi)-pi
ENDIF

您还需要设置可以看到“Post”的最大半径,并测试用户半径是否与柱子半径相交。