【发布时间】:2019-04-30 15:24:13
【问题描述】:
这就是我想要做的:
从表格中我得到坐标:
&usp-custom-20=45.492384716155605&usp-custom-19=9.206341950000024
我查询 SQl 以查找这些坐标附近的所有帖子,因为每个帖子都有带有 lat 和 lng 的自定义字段
帖子 1:
usp-custom-19 = 45.492384716155605
usp-custom-20 = 9.206341950000024
帖子 2:
usp-custom-19 = 45.512383456255605
usp-custom-20 = 9.326341933210024
然后我运行这个:
$posts = $wpdb->get_col( "SELECT m.post_id FROM $wpdb->postmeta m, $wpdb->postmeta n WHERE m.post_id=n.post_id AND m.meta_key='get_usp-custom-19' AND n.meta_key='get_usp-custom-20' AND (POW( CAST(m.meta_value AS DECIMAL(7,4)) - $lat, 2 ) + POW( COS(0.0175 * $lat) * ( CAST(n.meta_value AS DECIMAL(7,4)) - $ln ), 2 ) ) ) < $rad * $rad");
foreach($posts as $post) {
the_title();
}
但我什么也得不到。
这使用了仅在平面上有效的勾股定理 表面。这两个点需要足够接近,以便三角形 基本上是在一个平面上。 (否则,你需要一个“伟大的 Circle”公式。)另外,如果两个点会出现问题 跨越本初子午线的对面——180度子午线 度 - 国际日期变更线。
【问题讨论】:
-
您是否确认
$posts为空?get_col不返回 post 对象数组,因此您的foreach循环不会在那里做任何事情。 -
这似乎与stackoverflow.com/questions/53523533/… 相同,尽管用户名不同。
-
那么 wordpress.se 是什么?如果他们不是为了解决编程问题!!
-
@kero wordpress 不使用 PHP、MySQL 吗? :P 按照这个逻辑,所有与 Wordpress 相关的查询主要只与 PHP 和 MySQL 相关,并且应该只在 SO 中处理,不需要 Wordpress.SE :P 无论如何,这个聊天更像是 Meta 讨论.. 和平出.. :-)