使用谷歌地理定位没有谷歌地图

时间:2015-12-01 20:41:52

标签: geolocation

我正在使用Google geoloc来验证和规范化地址,以确定特定半径内的地点。但是,Google文档指出Google Maps Geocoding API只能与Google Map一起使用。 我想知道这是否适用于我,因为我没有在客户端显示这些数据

1 个答案:

答案 0 :(得分:0)

首先,Google Geocoder并非适用于所有/许多情况,尤其是需要对预设数据集进行大量地理编码的情况。可以找到替代API的综合列表here

即使Google Maps Geocoding API Usage Limits文档说明:

  

Google Maps Geocoding API只能与a一起使用   谷歌地图;地理编码结果而不在地图上显示它们   禁止。有关允许使用的完整详细信息,请参阅Maps API Terms > of Service License Restrictions

技术上可以使用地图地理编码API 在地图上显示结果,如下所示:



function initMap() {
    var geocoder = new google.maps.Geocoder();
    document.getElementById('submit').addEventListener('click', function () {
        geocodeAddress(geocoder);
    });
}

function geocodeAddress(geocoder) {
    var address = document.getElementById('address').value;
    geocoder.geocode({ 'address': address }, function (results, status) {
        if (status === google.maps.GeocoderStatus.OK) {
            document.getElementById("result").innerHTML = results[0].geometry.location.toString();
        } else {
            alert('Geocode was not successful for the following reason: ' + status);
        }
    });
}

html, body {
    height: 100%;
    margin: 0;
    padding: 0;
}

#map {
    height: 100%;
}

#panel {
    position: absolute;
    z-index: 5;
    background-color: #fff;
    padding: 5px;
    border: 1px solid #999;
    text-align: center;
    font-family: 'Roboto','sans-serif';
    line-height: 30px;
    padding-left: 10px;
}

<div id="panel">
        <input id="address" type="textbox" value="Sydney, NSW">
        <input id="submit" type="button" value="Geocode">
        <div id="result"></div>
</div>
<script src="https://maps.googleapis.com/maps/api/js?callback=initMap"
            async defer></script>
&#13;
&#13;
&#13;