views:

1048

answers:

5

So I'm looking at writing an iPhone application that shows things on a map. What frameworks/methodologies are out there for doing this?

Searching around on Google, I could only find this one: http://code.google.com/p/iphone-google-maps-component/

Which according to the issues list is slow, and stops working after a while. Does anyone know of something better, or have any experience with the library above?

+4  A: 

I'm pretty sure your only options for now are:

  1. Call openURL: to switch to the Maps app
  2. Use the Google Maps component you linked to
  3. Roll your own thing
  4. Wait for Apple to expose a "MapKit" framework
benzado
+2  A: 

WARNING: Embedding Google Maps inside an application may violate the Google Maps terms of service.

I have written a full mapping UIView on the iPhone (the application is on the AppStore) and it is not easy (this would be option #3 "Roll your own thing"). Getting good performance is really difficult. I would like to OpenSource my map component but right now the F-NDA is preventing that.

schwa
I'm sure that if you were to open source it, perhaps anonymously, Apple would be unlikely to chase you down.
tomtaylor
The NDA has been lifted now for published apps...care to share a bit more as to how you did it, and what your app is called?
rustyshelf
+2  A: 

I have been chasing this for a while now, and here's the best solution I've found out there:

http://code.google.com/p/touchcode/

There is a component in there called TouchMap and it comes with a demo that shows it off. It's tiles are loaded directly from Microsoft Virtual Earth.

Edit: @schwa, I just a look at your profile to find your email address, and then realised that you actually released this software. Nice work

rustyshelf
+2  A: 

I've just found route-me which looks like a large(30+) active community of ppl developing an open source mapping app for the iPhone. It can take tiles from OpenStreetMap, Virtual Earth(Bing) or Cloudmade.

Steve
A: 

well if you use openurl like this [[uiapplication sharedapplication]openurl:@"www.maps.google.com]; that will open the google map,but one problem with this is that it will navigate you to safari and your application will be exited and if you want to move back to your application from this web page,then it won't be possible .you again need to run the app. just use mapkit framework.really good

sanjay