Геокодирование твиты на карте Google - PullRequest
3 голосов
/ 23 октября 2011

Буду очень признателен за любую помощь в моей проблеме. Я смотрел на этот потрясающий урок от Марцина Дзевульского, который интегрировал последние твиты и аватары пользователей Твиттера в Google Map. В основном он размещает аватар пользователя там, где он последний раз твитнул. Я настоятельно рекомендую проверить учебник здесь:

http://tympanus.net/codrops/2011/04/13/interactive-google-map/

Кажется, все это имеет смысл, за исключением случаев, когда речь идет о фактическом геокодировании пользователя. Код прекрасно работает, когда разные твиттеры из разных городов. Однако предположим, что вы хотели отслеживать определенных пользователей в одном городе. Все они геокодированы из центра города, и вы можете видеть только один аватар за раз. Если вы обновите страницу, в том же месте появится еще одна. Это явно не то, что я хочу. Я предполагаю, что проблема в этом бите кода:

var users = o.twitter.get(), arr = new Array;
        for (i in users){
            var user = users[i];
            $.getJSON('http://twitter.com/users/show/'+user+'.json?callback=?', function(data) {
                var img = data.profile_image_url,
                    screen_name = data.screen_name;
                geocoder.geocode({ address: data.location }, function(response, status){
                    if (status == google.maps.GeocoderStatus.OK) {
                        var x = response[0].geometry.location.lat(),
                            y = response[0].geometry.location.lng();
                        marker = new google.maps.Marker({
                            icon: img,
                            map: map,
                            title: screen_name,
                            position: new google.maps.LatLng(x, y)
                        });

Я думаю, что что-то должно измениться в бите кода geocoder.geocode ({address: data.location}, но не на 100% положительно. Кажется, я не могу найти решение и в документации по API Twitter.

Мой вопрос в основном таков: можно ли изменить приведенный выше код так, чтобы он собирал более точные значения lat и long. координаты, откуда на самом деле генерируются твиты, а затем правильно отображать их в этих местах? Другими словами, не просто поместите твит из Нью-Йорка в центр Нью-Йорка, а разместите аватар в ТОЧНОМ месте.

Я проверял это с моими собственными твитами, с включенной функцией определения местоположения в Твиттере. Я просто не могу понять это! Еще раз спасибо всем, кто может помочь!

Лучшее

Brandon

Ответы [ 2 ]

2 голосов
/ 23 октября 2011

Проблема в том, что подавляющее большинство твитов не геокодированы, а координаты просто угадываются из настроек местоположения пользователя. Если вы хотите показать это интересным образом, рассмотрите возможность равномерного распределения лонглонгов «центра города». Это то, что часто делают разработчики картографических данных, когда у них нет более точных данных о местоположении, чем, скажем, район или участок.

0 голосов
/ 23 октября 2011

Если твит не был сделан с мобильного устройства, его широта / долгота будет там, где зарегистрирован провайдер.Если я пишу в Твиттере со своего рабочего стола, то мои твиты исходят с улицы перед столицей здесь, в Нэшвилле.Если я использую свой телефон и разрешу приложению twitter использовать мой lat / long, то все будет иначе.Поверьте мне, я мог бы мгновенно использовать данные lat / long при анализе потоков в твиттере, и мне хотелось бы, чтобы все было так просто.

Что бы вы могли сделать, это добавить функцию джиттера, которая добавляет случайное смещение вдоль x и yкоординатное поле для смещения твитов широта / долгота.Или вы могли бы это сделать.Если вы знаете, сколько из них вы получаете, вы можете легко определить ограничивающую область вашей сетки и сделать это следующим образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...