【问题标题】:Unique Address from google maps api来自谷歌地图 api 的唯一地址
【发布时间】:2017-11-04 08:52:31
【问题描述】:

我正在使用 togeojson 将 kml 转换为 togeojson
我从几何学中得到纬度和经度。

我正在使用 google API 发送 alt 和 long 以获取地址,这是我的 jquery 代码:

for (var i = 0, l = begin.length; i < l; i+=2) {
    var OddpositionVal = begin[i];
    var EvenpositionVal = begin[i + 1];
    var longitude11=OddpositionVal;
    var latitude11=EvenpositionVal;
    //console.log("latitude:"+latitude10);
    //console.log("longitude:"+longitude10);
    var latlng10 = latitude11+","+longitude11;
    //console.log("latlng10:"+latlng10);
    //var address=[];
    var url1 = "http://maps.googleapis.com/maps/api/geocode/json?latlng="+latlng10;
    //console.log("url:"+url1);
    $.getJSON(url1, function (data) {
        //console.log("data:"+data.results.length);
        for(var i=0;i<data.results.length;i++) {
            newAddress.push(data.results[0].formatted_address);
            //console.log("Properties:"+properties);

        }

    });
}

当我执行 console.log(newAddress) 时,我得到重复的位置:

Iam getting duplicates of locations

谁能帮帮我!!!

【问题讨论】:

    标签: javascript jquery html kml


    【解决方案1】:

    http://jsfiddle.net/rajacharya/NNuDe/599/

    我已更新代码以删除重复值,请在下面找到

    http://jsfiddle.net/rajacharya/NNuDe/628/

    var latlng = "55.397563, 10.39870099999996";
    var newAddress = [];
    var url = "https://maps.googleapis.com/maps/api/geocode/json?latlng=" + latlng;
    $.getJSON(url, function (data) {
        for(var i=0;i<data.results.length;i++) {
            var adress = data.results[i].formatted_address;
            newAddress.push(data.results[0].formatted_address);
        }
        alert(newAddress);
    });
    

    请注意,反向地理编码器返回了多个结果。 “formatted_address”结果不仅是邮政地址,而且是地理上命名位置的任何方式。例如,在对芝加哥市的一个点进行地理编码时,地理编码的点可以表示为街道地址、城市(芝加哥)、其州(伊利诺伊州)或国家(美国)。所有都是地理编码器的“地址”。反向地理编码器将这些类型中的任何一种作为有效结果返回。

    反向地理编码器匹配政治实体(国家、省、市和社区)、街道地址和邮政编码。

    一般来说,地址是从最具体到最不具体返回的;更准确的地址是最突出的结果,在这种情况下就是如此。请注意,我们返回不同类型的地址,从最具体的街道地址到不太具体的政治实体,例如社区、城市、县、州等。

    以下示例过滤返回的地址以仅包括地址类型为 street_address 的地址。

    var latlng = "12.9715987, 77.5945627";
    var newAddress = [];
    var url = "https://maps.googleapis.com/maps/api/geocode/json?latlng=" + latlng +"&result_type=street_address&key=YOUR_API_KEY";
    $.getJSON(url, function (data) {
        for(var i=0;i<data.results.length;i++) {
            var adress = data.results[i].formatted_address;
            newAddress.push(data.results[0].formatted_address);
        }
        alert(newAddress);
    });
    

    将 YOUR_API_KEY 替换为键值

    【讨论】:

    • @karthik,如果你使用这个,它会根据这个(国家、省、市和社区)、街道地址和邮政编码返回所有可能的组合。那就是它有时会多次创建相同的地址。如果在 url 中传递 &result_type=street_address&key=YOUR_API_KEY" ,它将过滤具有正确街道地址的结果
    • 将 API_KEY 替换为您在 google geocoding api 中注册的 API 值
    • 对于这个纬度 =12.9715987 和经度 = 77.5945627,地址是“24/1, Vittal Mallya Rd, KG Halli, Shanthala Nagar, Ashok Nagar, Bengaluru, Karnataka 560001, India”我不知道想要剩下...你能帮帮我吗!我从两天开始尝试这个:(
    • 用任何值更新 tge lat 和 lang
    • 感谢兄弟的工作就像一个魅力,我真的非常感谢你,这意味着你救了我很多
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 2018-11-14
    • 2016-12-02
    • 2014-11-18
    相关资源
    最近更新 更多