If you use Twitter then you will have noticed that the service encourages people to geocode their tweets, that is, to record their physical location at the moment of tweeting. What particular purpose this may serve is another point altogether, but let’s not get into that. Suffice to say, I sometimes make use of Twitter’s location feature.
So imagine my surprise this week when Twitter declared to my followers that I was in Italy when in fact I was in Ljubjlana, Slovenia, almost 100km away from the Italian border:
How could this be? Here’s what happened.
My iPhone recorded an accurate lat/long for my location, shown here in Google Maps:
Twitter then reverse-geocoded this lat/long location into a geographic area name. Normally this would be a neighbourhood or a city. In my case it chose to name the country. A bit coarse perhaps, but fair enough if Twitter hasn’t yet built a full geographic gazetteer for the whole world (has it not?). It would be fair to assume, however, that Twitter would at least get the country right. Unfortunately it didn’t:
That’s right, Twitter took the bounding rectangle of Italy and declared everything in it to be Italian territory. Nice one!
Never mind the proud Corsicans, there will be quite a few people in bordering nations who might have something to say about that. Especially considering that the Balkans are a region where, not so long ago, allegiance to the wrong geographic territory could get you killed.
How difficult would it be to use actual country boundaries as the defining polygon, rather than rectangles? Whether lazy or just plain stupid, this geographic error is unforgivable and simply mind-boggling. Besides the location tags worked correctly in the UK and in Paris a few days ago, so why not in Slovenia? This is such a basic geospatial error it is really unbelievable, but I double-checked it and the error is repeatable.
Does anybody know more about this Twitter error and why it is implemented this way?