Google地图上的地理编码推文

时间:2011-10-23 02:59:40

标签: google-maps-api-3 twitter geocoding

非常感谢我的问题。我一直在看Marcin Dziewulski的这个很棒的教程,他将最近的推文和推特用户头像整合到谷歌地图上。基本上他将用户头像放在他们上次推文的位置。我强烈建议您在这里查看教程:

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%肯定。我似乎无法在Twitter API文档中找到解决方案。

我的问题基本上就是这个......上面的代码可以改变,以便收集更精确的lat和long。实际生成推文的坐标,然后在这些位置正确显示它们?换句话说,不要只是在纽约市中心的纽约市发布推文,而是将头像放在精确的位置。

我用我自己的推文测试了这个,并启用了twitter的位置功能。我只是想不通数!再次感谢任何可以提供帮助的人!

最佳,

布兰登

2 个答案:

答案 0 :(得分:2)

问题在于绝大多数推文都没有进行地理编码,但是根据用户的位置设置简单地猜测了坐标。如果您想以有趣的方式显示它,请考虑均匀分布“城市中心”latlongs。这就是人口普查数据地图制作者在没有比区域或区域更准确的定位数据时经常做的事情。

答案 1 :(得分:0)

除非推文是从移动设备制作的,否则lat / long将成为ISP注册的地方。如果我从桌面发推文,我的推文就会从纳什维尔国会大厦前的街道发出。如果我使用我的手机并且我允许Twitter应用程序使用我的lat / long那么那将是不同的。相信我,我可以立即使用lat / long数据分析twitter流,我希望它很简单。

你可以做的是添加一个抖动函数,它在x和y坐标字段中添加随机位移,以取代推文lat / long。或者你可以把它弄清楚。如果你知道你得到了多少,你可以轻松地找出网格的边界区域并按照这样做。