php - 百度地图,分块计算并计算出每个小方块的中间值作为颜色?
迷茫
迷茫 2017-04-11 09:01:16
[PHP讨论组]

修改一下:

已知地图上一点A($coordinate_x,$coordinate_y)和另一点B($x,$y);点A和点B之间的距离是100米,如何求点B中的$y(或者$x),
其中$coordinate_x,$x是纬度,$coordinate_y,$y是经度,求$y(或者$x);
急需帮助。。。。。。。

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(1)
高洛峰

已知 A(x,y) 和 与 B的距离是100m,那么在不知道斜率的情况下,B的位置会组成一个圆。

如果已知A(x,y) B的x 或 y,以及距离r

那么至少有2和B点匹配

$r = 100;
假设 b.y 不存在
  1. pow(abs(a['x'] - b['x']), 2) + pow(abs(a['y'] - b['y']), 2) = pow(r, 2)

  2. pow(abs(a['y'] - b['y']), 2) = pow(r, 2) - pow(abs(a['x'] - b['x']), 2)

  3. abs(a['y'] - b['y']) = sqrt(pow(r, 2) - pow(abs(a['x'] - b['x']), 2))

  4. a['y'] - b['y'] = ± sqrt(pow(r, 2) - pow(abs(a['x'] - b['x']), 2))

如果b什么都不知道

b 点可以涵盖一个圆,

r 是两者之间距离,也就是半径

//角度转弧度

define('PI', 3.14159265358979324);
$d2r = function($d) {
    return ($d * PI) / 180;
};

//这个圆的所有坐标是:
for($i = 0; $i < 360;++$i) {
    $b['x'] = $a['x'] + $r * cos(d2r($i));
    $b['y'] = $a['y'] + $r * sin(d2r($i));
}

引用的公式

斜率公式是:

//坐标2,与坐标1形成的斜率(坐标1的x轴正方向的夹角弧度(顺时针))
//http://keisan.casio.com/exec/system/1223508685
$slope = function($p1, $p2) {
    return atan2($p2['y'] - $p1['y'], $p2['x'] - $p1['x']);
};

距离公式是

//坐标1,2 之间的距离
//http://keisan.casio.com/exec/system/1223508685
$distance = function($p1, $p2) {
        return pow(pow(abs($p2['x'] - $p1['x']), 2) + pow(abs($p2['y'] - $p1['y']), 2), 0.5);
};

我用这同一个答案,在这一个社区至少回复了3次类似的问题,莫非这个社区的SEO做的这么不好?

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号