PHP
    /****
     * @return \think\response\Json
     * 根据经纬度获取地址
     */
    public function getAddressByLatLon(){
        extract(input());
        $longitude = $lon;//用户当前定位的经度118.73893
        $latitude = $lat;//用户当前定位的纬度31.939964
        $place_url = 'http://api.map.baidu.com/geocoder/v2/?location='.$latitude.','.$longitude.'&               
output=json&ak=dsOE1fqvrdIPMRqZW8WYylBO36mWHVSp';
//$place_url="https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&key=YOUR_API_KEY";
        $json_place = file_get_contents($place_url);
        $place_arr = json_decode($json_place,true);
        $address = $place_arr['result']['formatted_address'];
        return json(array('status'=>200,'msg'=>$address));
    }
JS
<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="chrome=1">
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
    <style type="text/css">
      body,html,#container{
        height: 100%;
        margin: 0px
      }
      .panel {
        background-color: #ddf;
        color: #333;
        border: 1px solid silver;
        box-shadow: 3px 4px 3px 0px silver;
        position: absolute;
        top: 10px;
        right: 10px;
        border-radius: 5px;
        overflow: hidden;
        line-height: 20px;
      }
      #input{
        width: 250px;
        height: 25px;
        border: 0;
      }
    </style>
    <title>地址与经纬度</title>
    
  </head>
  <body>
   <div id="container" tabindex="0"></div>
   
   <script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.2&key=5a18100022aa01e213a9b2680f7ccbf9"></script>
   <script type="text/javascript">
    var map = new AMap.Map('container',{
            resizeEnable: true,
            zoom: 13,
            center: [116.39,39.9]
    });
    AMap.plugin('AMap.Geocoder',function(){
        var geocoder = new AMap.Geocoder({
            city: "010"//城市,默认:“全国”
        });
        
        var lnglatXY=[118.765084, 31.969888];//地图上所标点的坐标
        geocoder.getAddress(lnglatXY, function(status, result) {
        if (status === 'complete' && result.info === 'OK') {
           //获得了有效的地址信息:
result.regeocode.addressComponent打印这个获取具体信息
result.regeocode.addressComponent['district']//区
           alert(result.regeocode.formattedAddress)
        }else{
           //获取地址失败
        }
});  
        
       

    });
   </script>
   <script type="text/javascript" src="https://webapi.amap.com/demos/js/liteToolbar.js"></script>
    
  </body>
</html>

标签: none

添加新评论