So right now I’m in the process of making a web app for mobile devices using the Google Maps system. The idea is to point users, based on their GPS/geolocation, to the nearest Shanghai establishment selling craft beer.
I’ve learned quite a bit of JavaScript and coding in the process, which is always helpful, but I recently became quite angry after I discovered my idea couldn’t really work because all maps in China are intentionally inaccurate.
Using some tutorials posted by Apple and Google on their developer sites I made a mobile site that displays a user’s geolocation (/maps). However, in China, the displayed location is inaccurate. I wrote this post at Warehouse Cafe and its nowhere near the S location:
But using geolocation feature on the Maps application on my iPhone, it showed my proper location.
After some Googling, I discovered China’s map inaccuracy is a policy throwback from the Cold War to prevent foreign powers from using publicly available maps as an aid for invasion. With current satellite and remote sensing technology, I would say such thinking is fairly arcane. In one of my earlier posts, we saw that the CIA made their own maps of China, likely because the public maps can’t be trusted.
I learned a lot of this through a blog post I stumbled upon called: “All Maps in China are Transformed.”
To even publish a map in China, one must get a license from the State Bureau of Surveying and Mapping. In 2010, the government even announced a “crackdown” on illegal maps. Last year Nokia was apparently one of the first foreign companies to receive proper licensing.
When I first moved to Shanghai last March, back before Google pulled out of the mainland, my GPS location was fairly inaccurate. The maps app on my iPod touch was off by about 300-500 meters. However, the satellite imagery (which Google collects from non-government sources) had my proper location.
If you Google “China map offset” it will return hundreds of message board posts with people attempting to counter the problem. A few map apps have been made that display the properly aligned maps, but it’s not too helpful for developers to integrate.
Later, when Google left China and I bought an iPhone, I noticed the maps app showed my exact location. Even when I connect to the maps application through Foursquare or HiShanghai, I’m still able to find exactly where I am.
However, it’s when I load street maps from web sites, not applications, like http://maps.google.com do they come out incorrect. My location using the Google site turned up the same location as through the app on this site. As you can see, the satellite images are accurate, but fairly unhelpful when navigating the city’s streets.
When I used Baidu, China’s largest Web portal and search engine, the returned location was accurate.
I’ve looked into using the Baidu API, but it would not be helpful to non-Chinese speakers like myself because all the displayed streets would be in Chinese.
I also looked into using custom map tiles from somewhere like OpenStreetMap.org (which is used by the iPhoto app), but I encountered the same issue of Chinese character place names.
It might be something I have to wait out until the release of iOS 6.0. Apparently in the new version of iOS Apple will no longer use Google Maps.
At this point, it appears the only proper way to display my custom beer maps is to integrate it with an iPhone app. So it appears my dream of a beer map for Shanghai is still a few months away.
UPDATE: The release of Apple Maps has been a hit in China. The mapping system is mostly derided in the West, but according to Wall St. Cheat Sheet, the government appears to like it. The Apple Maps system in China uses an approved mapping system from AutoNavi, a Chinese company. As a result, the GPS/geolocation seems to be the more accurate than Google before it.
Is it just an array transformation, like (+300m, -500m)? That could be a simple fix if you know the exact transform dimensions. Or has China gotten sneakier and changed the array for each map/instance?
Good idea for an app, man. When you’re finished with Shanghai you should write one for the US! (or is there an app for that already? 😛 )
What I’m still puzzled about is why this is the case. Is it because google maps somehow collaborates with the Chinese government. Surely the GPS is accurate as it comes from US Satellites so why don’t google just use maps that correspond with that and cut the Chinese out of the equation. Also many posts state that satellite view is correct but the street view is incorrect. I’ve found this to be the other way round on google maps for iPad (quite new I believe). On my iphone it seems to be correct in both views on apple and google maps.
Now I dare say there won’t be a logical answer to this but Why Oh Why! This is nonsensical if the US military wanted to bomb China they won’t be relying on google maps. Either this is completely paranoid and illogical (wouldn’t surprise me at all in China) o there must b some commercial reason behind this that benefits Chinese companies. Any explanation much appreciated particularly in regard to the google collaboration but. Cheers
Okay slight correction. Google maps on my iPhone also displaying wrong location in Satellite view. Apple Maps perfect. I guess any potential wrongdoer should just get an iPhone to beat China’s paranoid mapping bureau
The China GPS offset is a lot more complicated than a constant transformation.