给定纬度和经度,获取Sencha Touch中的位置名称

时间:2013-07-06 14:41:03

标签: geolocation sencha-touch latitude-longitude

我正在尝试从给定的纬度和经度获取位置的名称。 有没有可能让它像

getNameOfLocation(经度,纬度)吗

例如getNameOfLocation(48.1471904942317,11.591434478759765) - > 结果慕尼黑

我不想使用任何图形元素来显示Google地图。

有什么想法吗? 谢谢你的帮助

var geo = Ext.create('Ext.util.Geolocation', {
    autoUpdate: false,
    listeners: {
        locationupdate: function(geo) {
            alert('New latitude: ' + geo.getLatitude());
        },
        locationerror: function(geo, bTimeout, bPermissionDenied, bLocationUnavailable, message) {
            if(bTimeout){
                alert('Timeout occurred.');
            } else {
                alert('Error occurred.');
            }
        }
    }
});

geo.updateLocation();

2 个答案:

答案 0 :(得分:0)

您可以向Google Maps API发送Ajax请求。例如:

http://maps.googleapis.com/maps/api/geocode/json?latlng=48.1471904942317,11.591434478759765&sensor=false

然后解析JSON结果。

答案 1 :(得分:0)

试试这个..

function getNameOfLocation(lat, lng) {
    var geocoder = new google.maps.Geocoder();
    var latlng = new google.maps.LatLng(lat, lng);
    geocoder.geocode({
        'latLng': latlng
    }, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            if (results[1]) {
alert(results[0].formatted_address) // your result              
 //country name
                for (var i=0; i<results[0].address_components.length; i++) {
                    for (var b=0;b<results[0].address_components[i].types.length;b++) {

                        if (results[0].address_components[i].types[b] == "administrative_area_level_1") {
                            city= results[0].address_components[i];
                            break;
                        }
                    }
                }


            } else {
                alert("No result");
            }
        } else {
            alert("failed: " + status);
        }
    });
}