I am trying to develop an iPhone app (with map routing function), and I need everyone's suggestions (guidance).
Below are a few specs:
The app will be running on iPhone with iOS 4+.
The app will have Map functionality.
In the app, given a "few locations" in a given order (to make things less complicated), the Map will draw routes between each locations on the Map.
Clicking on any location will display another page that shows some information about that location.
Can choose alternative route between two location (which I don't think is possible, but let me know if anyone know any framework that can do this).
I did some research, using Map on iPhone is easy using MapKit (and it's available after iOS 3.0). I followed this tutorial, and everything seems easy. However, if I want to draw routes on my map, I will need routes data in a CSV format. However, I do not have those data (yes! I suck).
And prior to iOS 5.1, MapKit use Google Maps, and I read somewhere that in Google Map's term and condition of use, it prohibit people from drawing on the Map (correct me if I am wrong).
In order to retrieve route data, I would imagine that I will have to get it through Google or Apple (I don't know if it's possible). I'm just wondering if Apple Map or Google Map have API to retrieve these?
If not, an alternative I came up with is to use a webview, and display my Map routes on Google Map. I'm just wondering if Google Map API will allow me to insert multiple locations and display all the routes?
I really need some suggestions... I am getting buried in all these problems.... thank you
Follow this sample - MKOverlay is the way to go. One more example is here.
Related
I am working on a project that involves computing a custom route from a particular origin position to a destination on a map. Ideally, this application should be able to give live walking/driving directions for this custom route, or it should able to send this route to the Google Maps or Apple Maps apps to handle the navigation.
Is there a way to accomplish this using the Google Maps SDK or with Apple'sMapKit (or any other framework)? In theory, for short routes, this could be accomplished using the Google Maps waypoints feature, where points along the desired route are pre-specified, but the API is limited to 23 waypoints, which would become problematic quite quickly.
In essence, I want something like Google Maps, but with the route determined by my own algorithm rather than Google's.
For custom routes, you could use something like Skobbler or MapBox.
My first question here. I'm hoping I'm doing the tags and such correctly so the right folks might be able to see this. If this question should be placed in other area, please let me know.
I'm trying to create a link to a set of custom driving directions that, when clicked from the native iOS Mail app, will open the Google Maps iOS app and populate the custom directions.
I have a map which has driving directions from Point A to Point B, but I've significantly revised the route using the click and re-position functionality in Google Maps (web).
Using the share function from Google Maps (web) creates a link that does in fact retain the custom route, which can be seen when the link is clicked and it opens in Safari. I don't mind that it opens in Safari, since at this point it prompts you to open up these directions in the Google Maps app. But here's where it gets muddy.
When you click the "use the app" button from Safari, the custom route does not carry over to the app. You are shown default route choices based on Point A and B.
The Google Directions API section on Waypoints and using the 'via:' prefix seems like the best way around this, but I'm not sure how I'd turn that into something clickable from an email.
For reference, here is one of the maps I made with a custom route. Basically I want to have it go from Point A to B along one road. I had to make a handful of points along the route in order to keep the route on the same stretch of road.
Further complicating this is Google's attempt to reroute even this map, based on real-time traffic. I went back to this link after copying it here to find out there's an accident on this road right now and it's re-routing through side streets.
Any help would be much appreciated.
Well, you can open the google maps as it follow as it is documented in the documentation:
comgooglemaps://?saddr=Google,+1600+Amphitheatre+Parkway,+Mountain+View,+CA+94043&daddr=Google+Inc,+345+Spear+Street,+San+Francisco,+CA¢er=37.422185,-122.083898&zoom=10
However, there is no mention on how you can add waypoints. And, indeed, you can not even do it in the Maps App. So there is basically nothing we can do...
BTW, here is a blog where included some work arounds, hope this helps a little.
here is what i do : long method, but it works.
open google my maps (instead of google maps) and make your custom route.
in options, export your route to KML/KMZ
at gps vizualizer com, convert your route to the format your app accepts.
This might be a very stupid question for some people but I want to be make sure about this.
In iOS6 Apple has updated its Map application and added his own map. Now if I develop any native application and include map(MKMapView) into this so are their any changes which I should be aware of them?
Previously, I was using Google web service to fetch the latitude and longitude between two locations and draw direction. Does Apple provide its own web services for the same?
are their any changes which I should be aware of them?
MKMapView will still work fine, but the map it displays will look a little different. Also, if you limit your app to iOS versions that use only Apple's maps, you might not be subject to Google's terms and conditions. Read your agreements.
Does Apple provide its own web services for the same?
There's CLGeocoder. It's a class, not a web service, but that just makes it easier to use.
Using MKMapView framework didn't change just because the images are different. It should work fine.
Google's Terms Of Service say that you can't show their data on someone else's maps. So if your app is still getting data from a Google webservice you'll need to use the Google Map SDK that they have put out, not the usual MKMapView on iOS 6+.
If you are only using Google's webservice to turn a human readable address into lat/long then you can do that using CLGeocoder as Caleb suggested, but Google offer other services too.
I am using Google Places API to pull a list of resturants, and I am displaying them on map. However, since Apple has switched there map services over from Google in iOS 6.0, I am now in violation of Google's terms of use, which states that you must display Google data on a Google map.
"If your application displays Places API data on a map, that map must be provided by Google."
https://developers.google.com/places/policies#terms_of_use
I obviously need to change the map, because I am not going to release an application that is in violation. Any thoughts or suggestions on what to do? Should I go Google Maps with a web view? Does apple have some sort of Google Places API alternative?
Edit:
Using Google Maps through a web view is a hassle, i'd like to find an alternative to that, although it would technically work.
I decided to use Google Maps JavaScript API. Although, it is a little more difficult to deal with, mainly the JavaScript through Objective-C, it is a solution. The map is displayed through a web view, and I use JavaScript to interact with the map.
https://developers.google.com/maps/documentation/javascript/tutorial#api_key
I will wait to accept this answer, to see if anyone else has any thoughts. I just wanted to post this, in case it helps someone else.
Edit:
Google recently released a Maps SDK for iOS, this is the better solution now.
https://developers.google.com/maps/documentation/ios/
I would try to directly contact Google, explaining the situation, and ask them for written permission to use Apple's maps. This is more a legal question than programming. One would think that Google is aware that you can no longer display their maps using Apple's API and that, even regardless of the map, they would want you to use their places, as doing so generates advertising revenue for them.
Agree with #Owen here - you could get permission to leave your app unchanged until some possible future date when you might have to change it, or could you definitely go to the effort of changing it now and then possibly have to change it again in the future for some other reason.
If you could get a 100% guarantee that you could change it once and never have to change it again then I'd say do it now, but nothing's certain.
I have looked for hours for what seems like it should be a trivial task.
I simply want to draw a route through a series of waypoints (which I have as both address strings and geoCoordinates).
The Imagery API lets me do a query for a static map, which seems to be a common solution, but I was hoping to draw the route on the dynamic, interactive map provided by the Bing Maps iOS SDK.
Thank you.
"draw the route on the dynamic, interactive map provided by the iOS SDK." Is this to say that you want to use MapKit on the iPhone?
If that's the case then you can look at this: http://iphonegeeksworld.wordpress.com/2010/09/08/drawing-routes-onto-mkmapview-using-unofficial-google-maps-directions-api/
The only problem with that is that you need to decode the polylines, which you can do by following links in that link and modifying that code to suit yourself.