Дайте широту и долготу, получите город радиуса x миля

при использовании укажите широту и долготу, я должен указать город и штат США. попробуйте использовать API места карты Google, но у него нет типа места

ищи в гугле, получай ответы:

1. создать базу данных о городах и использовать sql для расчета расстояния. Но я не получил никаких точных данных, и некоторые данные не бесплатны.

2. использовать третью базу данных geoNames, получить данные, но меня беспокоит сайт ограничить количество запросов. Так у тебя был какой-нибудь ответ, помогите


person Sun    schedule 24.02.2016    source источник
comment
Вероятно, вы захотите использовать геокодер. См. Пример этой скрипки: jsfiddle.net/upsidown/5S3ce и просмотрите консоль, чтобы увидеть результаты. . Если у вас возникли проблемы с получением нужной информации, откройте новый вопрос с кодом, который показывает, что вы пробовали.   -  person MrUpsidown    schedule 24.02.2016


Ответы (1)


Если у вас есть lat и lng, вам лучше позвонить Geocoder.geocode. Как только вы получите ОК в резонансе, вы можете проверить address_componenets с типом "administrator_area_level_n"

var latlng = new google.maps.LatLng(lat, lng);
        var geocoder = new google.maps.Geocoder();
        geocoder.geocode({ 'latLng': latlng }, function(results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                if (results[1]) {
                    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_2") {
                                var city = results[0].address_components[i];
                            }
                        }
                    }
                }
            }
person farhan iqbal    schedule 24.02.2016
comment
Пожалуйста, опубликуйте полный рабочий код и объясните, что он делает. - person MrUpsidown; 24.02.2016
comment
@MrUpsidown, мне кажется, он не требует пояснений, но добавлен в соответствии с вашим запросом (для полноты) - person farhan iqbal; 29.02.2016
comment
Это может быть и для вас, и для других тоже. Но многие люди здесь - начинающие программисты, и поэтому всегда лучше публиковать полный код. Спасибо за обновление кода. - person MrUpsidown; 29.02.2016