【问题标题】:Get longitude and latitude values from Google Map address从谷歌地图地址获取经度和纬度值
【发布时间】:2012-09-28 10:57:47
【问题描述】:

我有一个提供 Google 地图地址的 Google 地图 API。这是获取 Google 地图 API 的代码:

<input name="add" type="text" id="address" class="required" style="width: 500px;">
            <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&libraries=places&language=en-AU"></script>
            <script>
                var autocomplete = new google.maps.places.Autocomplete($("#address")[0], {});

                google.maps.event.addListener(autocomplete, 'place_changed', function() {
                var place = autocomplete.getPlace();
                console.log(place.address_components);
                });
            </script>
        <!--code for Google address API-->

现在我还想要输入地址的经度和纬度。任何人都知道如何获得输入地址的经度和纬度值。

【问题讨论】:

    标签: google-maps geolocation location


    【解决方案1】:

    您可以使用该地点的几何对象来获取纬度和经度。如果我输入一个有效的目的地并从自动完成选项中选择一个,以下对我有用。

    <input name="add" type="text" id="address" class="required" style="width: 500px;">
    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&libraries=places&language=en-AU"></script>
    <script>
        var autocomplete = new google.maps.places.Autocomplete(document.getElementById('address'));
    
        google.maps.event.addListener(autocomplete, 'place_changed', function() {
            var place = autocomplete.getPlace();
            var geometry = place.geometry;
            var location = geometry.location;
            var latitude = location.lat();
            var longitude = location.lng();
            console.log(latitude);
            console.log(longitude);
        });
    </script>
    

    甚至只是:

    var place = autocomplete.getPlace();
    var latitude = place.geometry.location.lat();
    var longitude = place.geometry.location.lng();
    

    【讨论】:

    • 它给出了错误:TypeError: location.lat is not a function [Break On This Error] var latitude = location.lat();
    • 它当然适合我。我将在此答案中发布我的完整代码。唯一的区别是我没有为自动完成选项传递一个空的 {},我使用 document.getElementById() 而不是使用 jquery 选择器
    • 谢谢我得到了答案,但它与你的不同。
    【解决方案2】:

    我得到了答案:

            <script>
    
            function cordinate()
            {
                geocoder = new google.maps.Geocoder(); // creating a new geocode object
                // getting the address value
                address1 = document.getElementById("address").value;
                //alert(address1);
                    if (geocoder)
                {
                geocoder.geocode( { 'address': address1}, function(results, status)
                {
                if (status == google.maps.GeocoderStatus.OK)
                {
                //location of address (latitude + longitude)
                var location1 = results[0].geometry.location;
                document.getElementById("cor").value = location1;
    
                //alert(location1);
                } else
                {
                alert("Geocode was not successful for the following reason: " + status);
                }
                });
    
                }//end of If
    
            }
            </script>
            <!--code for google address cordinates-->
            <input type="hidden" name="cor" id="cor">
    

    【讨论】:

      猜你喜欢
      • 2013-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-11
      • 1970-01-01
      • 2021-03-22
      相关资源
      最近更新 更多