无法让它在 Joomla 3.4+ 中工作
Posted
技术标签:
【中文标题】无法让它在 Joomla 3.4+ 中工作【英文标题】:Can not get this to work in Joomla 3.4+ 【发布时间】:2015-05-07 02:54:04 【问题描述】:现在花了几个小时,但它似乎不起作用。一位听众点击了我的网站,我获取了他们的 ip 并最终获得了大致的纬度和经度。我有一张我的广播电台的表格,上面有它们的大致纬度和经度。我只是想看看新的 Listener 是否在我的一个电台 25 英里范围内,这样我就可以给他们那个提要。如果没有,我会给他们我的全球直播。
当我使用下面的查询时,
//Connect to database
// CONNECT TO JOOMLA DATABASE
$db = JFactory::getDbo();
// Create a new query object.
$query = $db->getQuery(true);
$query
->select($db->quoteName(array('cityName', 'countryCode', 'latitude', 'longitude')))
->select($db->quote('( 3959 * acos( cos( radians('.$latitude.') ) * cos( radians( latitude ) )
* cos( radians( longitude ) - radians('.$longitude.') ) + sin( radians('.$latitude.') )
* sin( radians( latitude ) ) ) )', 'distance'))
->from($db->quoteName('#__areas'))
->having($db->quote('distance') . ' < ' . $miles)
->order($db->quote('distance') . ' DESC')
->setLimit('1');
// Reset the query using our newly populated query object.
$db->setQuery($query);
// Load the results as a list of stdClass objects (see later for more options on retrieving data).
$row = $db->loadObject();
echo $distance = distance($latitude,$longitude,$row->latitude,$row->longitude,"M");
echo '<br />';
print_r($row);
exit;
输出是:
stdClass Object ( [cityName] => Fort Lauderdale [countryCode] => US [latitude] => 26.122299 [longitude] => -80.143402 [( 3959 * acos( cos( 弧度(46.8898) ) * cos( 弧度(纬度))* cos(弧度(经度)-弧度(-114.031))+ sin(弧度(46.8898))* sin(弧度(纬度))))] =>(3959 * acos(cos(弧度(46.8898)) * cos(弧度(纬度))* cos(弧度(经度)-弧度(-114.031))+ sin(弧度(46.8898))* sin(弧度(纬度)))))
长计算的结果不应该是距离而不是重复计算吗?我已经尝试了所有我能想到的组合,除了正确的组合。真的可以使用一些帮助。谢谢!
【问题讨论】:
所以只需评论您的print_r($row);
【参考方案1】:
尝试一下:
->select('( 3959 * acos( cos( radians('.$latitude.') ) * cos( radians( latitude ) ) * cos( radians( longitude ) - radians('.$longitude.') ) + sin( radians('.$latitude.') ) * sin( radians( latitude ) ) ) ) as distance'))
【讨论】:
虽然这个答案可能是正确且有用的,但最好在其中附上一些解释来解释它如何帮助解决问题。如果有更改(可能不相关)导致它停止工作并且用户需要了解它曾经是如何工作的,这在未来变得特别有用。以上是关于无法让它在 Joomla 3.4+ 中工作的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI Alert 如何让它在一个简单的 if 语句中工作?
Midlet 在模拟器中工作,ClassNotFoundException 在手机上