Amap 高德地图根据地址获取省市区街道


<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
    <title>Amap 高德地图根据地址获取省市区街道</title>
    <!--<link rel="stylesheet" href="https://a.amap.com/jsapi_demos/static/demo-center/css/demo-center.css"/>-->
    <link rel="stylesheet" href="css/demo-center.css"/>
    <style>
        html,body,#container{
            height:100%;
            width:100%;
        }
        .btn{
            width:10rem;
            margin-left:6.8rem;   
        }
    </style>
</head>
<body>
<div id="container" class="map" tabindex="0"></div>
<div class="input-card" style='width:28rem;'>
    <div class='input-title'  style='color:rgb(0, 0, 0)'>地址街道信息查询</div>
    <div class='input-subtitle' >请输入你需要查询的地址。</div>
    <div class="input-item">
            <div class="input-item-prepend"><span class="input-item-text" >地址</span></div>
            <input id='address' type="text" value='深圳市罗湖区布心路水贝地铁站' >
    </div>
    <div class="input-item">
            <div class="input-item-prepend"><span class="input-item-text">省</span></div>
            <input id='province' disabled type="text">
    </div>
    <div class="input-item">
            <div class="input-item-prepend"><span class="input-item-text">市</span></div>
            <input id='city' disabled type="text">
    </div>
    <div class="input-item">
            <div class="input-item-prepend"><span class="input-item-text">区</span></div>
            <input id='district' disabled type="text">
    </div>
    <div class="input-item">
            <div class="input-item-prepend"><span class="input-item-text">街道/乡镇</span></div>
            <input id='street' disabled type="text">
    </div>
    <input id="geo" type="button" class="btn" value="查询一下" />
    
    <div>
        <div class='output-title'>当前查询地址:</div>
        <div class='output-result' id='address_2'></div>
    </div>

</div>
<script src="js/demoutils.js"></script>
<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.15&key=160cab8ad6c50752175d76e61ef92c50&plugin=AMap.Geocoder"></script>
<script type="text/javascript" src='https://webapi.amap.com/maps?v=1.4.15&key=160cab8ad6c50752175d76e61ef92c50&plugin=AMap.ToolBar'></script>
<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.15&key=160cab8ad6c50752175d76e61ef92c50&plugin=AMap.Autocomplete"></script>
<script src="https://webapi.amap.com/ui/1.0/main.js?v=1.0.11"></script>
<script type="text/javascript">
        
    AMapUI.loadUI(['misc/PositionPicker'], function(PositionPicker) {
        var map = new AMap.Map('container', {
            zoom: 16,
            scrollWheel: true,
            resizeEnable: true
        })
        var positionPicker = new PositionPicker({
            mode: 'dragMap',
            map: map
        });

        
        var auto = new AMap.Autocomplete({
            input: "address"
        });

        

        function geoCode() {
        var geocoder = new AMap.Geocoder({
        });
        var address  = document.getElementById('address').value;
            geocoder.getLocation(address, function(status, result) {
                if (status === 'complete'&&result.geocodes.length) {
                    var lnglat = result.geocodes[0].location
                    geocoder.getAddress(lnglat, function(status, result) {
                        if (status === 'complete'&&result.regeocode) {
                            var street = result.regeocode.addressComponent.township
                            document.getElementById('province').value = result.regeocode.addressComponent.province;
                            document.getElementById('city').value = result.regeocode.addressComponent.city;
                            document.getElementById('district').value = result.regeocode.addressComponent.district;
                            document.getElementById('street').value = street;
                            
                        }else{
                            log.error('根据地址查询地址失败')
                        }
                    });
                    map.setCenter(lnglat);
                    positionPicker.start(map.getBounds().getCenter())
                }else{
                    log.error('根据地址查询位置失败');
                }
            });
        }

        positionPicker.on('success', function(positionResult) {
            var geocoder = new AMap.Geocoder({
            });
            
            document.getElementById('address_2').innerHTML = positionResult.address;
            geocoder.getAddress(positionResult.position, function(status, result) {
                    if (status === 'complete'&&result.regeocode) {
                        var street = result.regeocode.addressComponent.township
                        document.getElementById('province').value = result.regeocode.addressComponent.province;
                        document.getElementById('city').value = result.regeocode.addressComponent.city;
                        document.getElementById('district').value = result.regeocode.addressComponent.district;
                        document.getElementById('street').value = street;
                    }else{
                        log.error('根据地址查询地址失败')
                    }
                });
        });
        positionPicker.on('fail', function(positionResult) {
            document.getElementById('province').value = '超出查询范围';
            
        });
        var getplace = document.getElementById("geo");
        var getAddresskey = document.getElementById('address')
        AMap.event.addDomListener(getplace, 'click', function() {
            geoCode();
        })
        AMap.event.addDomListener(getAddresskey, 'keydown', function(e) {
            if (e.keyCode === 13) {
                geoCode();
                return false;
            }
            return true;
        })

        
        positionPicker.start();
        map.panBy(0, 1);

        map.addControl(new AMap.ToolBar({
            liteStyle: true
        }))


    });
    </script>

</body>
</html>

 https://scorpionfree98.github.io/fetch_address_detail/Geocoder.html


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM