PHP实现输入地址,获取当前位置的经纬度,$lng和$lat即为经纬度的返回值

通过PHP实现从指定地址获取经纬度,利用百度地图API获取JSON数据,然后解码并提取出经度$lng和纬度$lat。
摘要由CSDN通过智能技术生成
public function index(){
    $address="洛阳师范学院";
    $url='http://api.map.baidu.com/geocoder/v2/?address='.$address.'&output=json&ak=你的ak';
    $result=file_get_contents(
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在 C 语言中,可以使用数学计算和三角函数来根据已知的一点经纬度和两点之间的距离来求另一点的经纬度。具体步骤如下: 1. 定义已知的一点经纬度和两点之间的距离; 2. 将经纬度转换为弧度制; 3. 根据距离和已知点的经纬度,计算出目标点与已知点的方位角; 4. 根据目标点与已知点的方位角和距离,计算出目标点的经纬度。 下面是一个示例代码,其中经纬度单位为度,距离单位为千米: ```c #include <stdio.h> #include <math.h> #define EARTH_RADIUS 6371.0 // 地球半径,单位为千米 double deg2rad(double deg) { return deg * M_PI / 180.0; } double rad2deg(double rad) { return rad * 180.0 / M_PI; } void get_new_position(double lat1, double lng1, double distance, double azimuth, double *lat2, double *lng2) { double lat1_rad = deg2rad(lat1); double lng1_rad = deg2rad(lng1); double azimuth_rad = deg2rad(azimuth); double distance_km = distance / EARTH_RADIUS; // 距离转换为弧长 double lat2_rad = asin(sin(lat1_rad) * cos(distance_km) + cos(lat1_rad) * sin(distance_km) * cos(azimuth_rad)); double lng2_rad = lng1_rad + atan2(sin(azimuth_rad) * sin(distance_km) * cos(lat1_rad), cos(distance_km) - sin(lat1_rad) * sin(lat2_rad)); *lat2 = rad2deg(lat2_rad); *lng2 = rad2deg(lng2_rad); } int main() { double lat1 = 31.2304; double lng1 = 121.4737; double distance = 10.0; double azimuth = 45.0; double lat2, lng2; get_new_position(lat1, lng1, distance, azimuth, &lat2, &lng2); printf("New position: (%lf, %lf)\n", lat2, lng2); return 0; } ``` 在上面的代码中,`get_new_position` 函数用于计算新的经纬度,其中 `lat1` 和 `lng1` 表示已知点的纬度和经度,`distance` 表示已知点与目标点之间的距离,`azimuth` 表示已知点与目标点之间的方位角。函数的返回值是目标点的纬度和经度。函数中使用了三角函数 `sin`、`cos`、`asin`、`atan2` 等来进行计算。最后将计算出的弧度值转换为度数,即可得到目标点的经纬度
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值