谷歌舆图 API 开辟之猎取坐标以及街道概况

本身的项目中有猎取当前点击的坐标经纬度或许猎取当前街道的信息的需求。
预计这个关于新手来讲,照样比较贫苦的,由于从官网上找这个也并非很好找,要找良久的,命运运限好的可能会一会儿找到。

献上本身写的测试案例。代码以下:

<!DOCTYPE html>
<html>

<head>
    <title>Simple Map</title>
    <meta name="viewport" content="initial-scale=1.0">
    <meta charset="utf-8">
    <style>
        html,
        body {
            height: 100%;
            margin: 0;
            padding: 0;
        }
        
        #map {
            height: 100%;
        }
    </style>
</head>

<body>
    <div id="map"></div>
    <script>
        function initMap() {
            var myLatlng = {
                lat: 39.921323,
                lng: 116.426239
            };
            var marker ;
            var markersArray = [];
            var map = new google.maps.Map(document.getElementById('map'), {
                zoom: 12,
                center: myLatlng
            });
            map.addListener('click', function(e) {
                addMarker(e.latLng, map);
                //依据经纬度猎取 当前地舆信息
                var latLngData = e.latLng.lat().toFixed(6)+','+e.latLng.lng().toFixed(6);
                console.log(latLngData)
                $.ajax({
                    type:"post",
                    url:"https://maps.googleapis.com/maps/api/geocode/json?latlng="+latLngData+"&location_type=ROOFTOP&result_type=street_address&key=AIzaSyC8IXpNgfA7uD-Xb0jEqhkEdB7j3gbgOiE",
                    async:true,
                    success:function(data){
                        console.log(data)
                        var site = latLngData+'<br />'+data.results[0].formatted_address;
                        console.log(site)
                        var infowindow = new google.maps.InfoWindow({
                            content: site
                        });
                        infowindow.open(map,marker); //弹出信息提醒窗口
                    }
                });
                
            });
            //增加坐标对象
            function addMarker(latLng, map) {
                if(markersArray.length>0){
                        markersArray[0].setMap(null);
                };
                markersArray.shift(marker)
                marker = new google.maps.Marker({
                    position: latLng,
                    map: map
                });
                markersArray.push(marker);
            }
        }
    </script>
    <script src="js/jquery-1.11.0.js" type="text/javascript" charset="utf-8"></script>
    <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyC8IXpNgfA7uD-Xb0jEqhkEdB7j3gbgOiE&callback=initMap" async defer></script>
</body>

</html>

注重:请引入本身当地的jquery,由于要用的ajax要求,谷歌的地舆效劳接口。

代码的中心就在于要求的URL:

url:"https://maps.googleapis.com/maps/api/geocode/json?latlng="+latLngData+"&location_type=ROOFTOP&result_type=street_address&key=AIzaSyC8IXpNgfA7uD-Xb0jEqhkEdB7j3gbgOiE"

这个是经纬度反向地舆编码, 这段url里有四个参数:latlnglocation_typeresult_typekey,详细观点以及参数详解,请参考下一章的 谷歌舆图API 开辟 之 Geocoding API

    原文作者:旅图灬
    原文地址: https://segmentfault.com/a/1190000006173987
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞