Aw I was REALLY hoping to see geocoding + reverse geocoding.
To clarify why, the landscape for that is fairly grim right now. GeoNames (http://www.geonames.org) seems to be the best that i've evaluated thus far. It'll cost you at scale (not much), but it's international and can find nearby neighborhoods/cities. Google requires you to display their information on one of their maps if you use them to geocode or reverse geocode.
Question for iOS devs out there: how are you finding nearby cities in your app from a lat/lng point? (is even asking this against the ios rules?) Right now I am using geonames and the results are pretty decent. Works for now!
Note: I have setup a nominatim server. Unless you have 128gb of ram and some SSD's or 15k SAS drives, be prepared to wait over 1 month. The indexes are intense and they take, literally, over a month to create if you end up swapping. To avoid swapping you need at least 128gb of ram....
I guess if all you want is geocoding, you could exclude a lot of data before importing it. Eg landuses without names, lots of single nodes that have nothing to do with addresses, etc.
Have you set it up? I have...and I am giving you the amount of time it took to do a world import on data from January. This was on a quad core xeon 5345 with 32gb of ram and a dedicated SSD for swap, with database living on a RAID10 of 8 7200 rpm drives. In other words, the box is decent.
I am not trying to fear monger, I am just trying to say "hey, BTW unless you have a big hardware budget, you might want to just pay a third party".
Blast from the past! I worked on this project, mainly on the associated Facebook app, "Friends on Fire". The original crew has scattered around the place - several work at Twitter now, one is running a dev shop in Uruguay, one is freelancing in SF, a couple are at various startups down the peninsula.
Easter egg: All the little pixel characters on the homepage are members of the dev team. I'm the one on the left in blue jeans and a dotted shirt :)
They offer both SaaS, as well as a simple way to deploy the whole thing and run a local (reverse-) geocoding server. It does take a few days to build the GeoNames + OpenStreetMap index though. I run it locally for mapping coordinates to cities and it runs quite decently, a 2-core 2GB Linux VM running PostgreSQL gets me about 80-100 queries/s. It has a nice JSON API so it shouldn't be too hard using it from iOS.
That strikes me as a fairly low number of requests per second for powerful dedicated hardware. Am I way off here? Is the problem much harder than I think it is?
iOS's built in MapKit provides a reverse geocoding lookup API. It used to abstract away the Google geocoding API, but I'm not sure if iOS6 still relies on Google for that, I haven't looked into it.
The basic gist of it: Init a CLLocation object with a lat/long (probably pulled from the device GPS or a map dropped pin) and then call CLGeocoder's reverseGeocodeLocationInitialize and it'll return a CLPlacemark, which contains the approximate address.
To just find nearby cities from a lat/long though, you probably don't need to reverse lookup the address, it's probably easier to use something like MaxMind's free database which would give you the lat/long of cities, host it either locally on the device (a subset, obv) or on your server and then just use math to put some coordinate min/max bounds on your query to find city names nearby.
It hasn't relied on Google since iOS 5, when CLGeocoder was introduced. This is one reason why the new geocoding classes (versus the now deprecated MapKit ones, which used Google) are somewhat less accurate and absent entirely from certain countries.
On Android, the Google Maps API is part of "Google APIs", not "Android APIs". Since they have their own Android fork essentially, they get the latter, but not the former. So now they've built an equivalent for the former.
> Custom Overlays. You can display the locations of businesses, landmarks and other points of interest with your own customized markers and pins.
Does this mean there finally is some kind of map app on Android when user can place one's own marks, paths and places? One of the feature I miss in Google Maps for Android is being able to put my own data on the map (like, for example, marking places I plan to visit when going for a trip) and having it available off-line.
Don't limit yourself to Google. Try OpenStreetMap apps. For example OruxMaps or OsmAnd. You can easily load routes and data into those. The underlying data is free and open and you can contribute easily (and have the changes live in minutes). OsmAnd has incredibly easy ways to select POIs to highlight.
Thanks, I'll definitely look into it! Does any of those support off-line map catching? (it's hell of an important feature for me; quite recently GPS + offline maps saved my butt when I got stranded in the middle of a highway while returning from Prague via hitchhiking).
> The company's A9 search subsidiary is expected on Tuesday to launch a beta of A9.com Maps, which lets people see street-level photos of addresses and get driving directions.
In fact, Google's Street View was apparently launched a week after A9 shut down. ;P
> The schtick behind A9's take was to have vehicles driving around taking pictures of both sides of every major city street in the US. It looked promising (if a bit invasive), search for some business or other address and even get a photo of what the storefront looked like.
If Amazon can do things for maps like it did for file storage(s3), it would be phenomenal for developers , as most of the innovations in recent years depends on location data.
It should not be too costly for Amazon to provide maps and geo data. They should make map services part of AWS.
I doubt it will be that cheap, at least to implement a fully fledged service alla google maps. But sure it will be interesting for a lot of developers.
Amazon builded AWS out of necessity and then transformed it into a public service.
I believe it make sense to them to build a map service in the same way, giving they they are still a logistic company it could be more than helpfull for them.
This is a pretty big deal. I wonder where they got their data from? Can people compete in this space without street view? It's the main reason I use google maps.
I agree. The loss of Street View is actually one of the biggest downsides of iOS 6 in my mind.
Although I assume Google will release their own Maps app for iOS, but since Apple doesn't let you remove their built-in apps, I'm stuck with 2 maps icons, and no doubt clicking an address in any other app will load the Apple Maps app and not Google Maps.
edit: ehh sorry I just realized this is pretty off-topic. :-(
Have you ever used street view on mobile? I haven't. I don't think they're trying to compete with Google Maps in general. Just trying to give their developers a map API to use.
To clarify why, the landscape for that is fairly grim right now. GeoNames (http://www.geonames.org) seems to be the best that i've evaluated thus far. It'll cost you at scale (not much), but it's international and can find nearby neighborhoods/cities. Google requires you to display their information on one of their maps if you use them to geocode or reverse geocode.
Question for iOS devs out there: how are you finding nearby cities in your app from a lat/lng point? (is even asking this against the ios rules?) Right now I am using geonames and the results are pretty decent. Works for now!