views:

888

answers:

4

So, this question is not if I can do routing with mapkit. You can't with the API. So I found the clever way of using an annotation to render a route between two points. The route is based on a series of lat/long values. In my app, I use it to render a route (but not for vehicles or walking). There is no list of directions, so it's not turn by turn. Just shows the line on the map.

This may be more legal, but does this violate the license? Is there the possibility that my app could be rejected? This is a very big deal for my app. Has anyone gotten a commercial app out using this method?

A: 

Given the inconsistency of the app store approval process, what got through for one person may not get through for somebody else.

bpapa
A: 

I believe the only requirement of the MapKit license (which is from Google and not Apple) is that you do not sell an application that features only a map + additional features built around the map. If the map feature was just a small piece of the application then it's fine, I believe.

I don't think that Apple will enforce this when approving apps, though. Unless you're using undocumented/underground API then you should be fine getting through to the App Store.

Malaxeur
No, it's not a map application, but a feature in the application. However, it's an important feature, as I have annotations for points of interest around the drawn lines. Just wondering if I am in a gray area here.
Chris Van Buskirk
+1  A: 

What you want to do seems like it is OK, as long as when you are showing routes you do not display the user position. I am basing this on the docs here (linked to from the MKMapView documentation):

http://code.google.com/apis/maps/iphone/terms.html.

that state you cannot:

10.9 use the Service or Content with any products, systems, or applications for or in connection with:

(a) real time navigation or route guidance, including but not limited to turn-by-turn route guidance that is synchronized to the position of a user's sensor-enabled device;
(b) any systems or functions for automatic or autonomous control of vehicle behavior; or
(c) dispatch, fleet management, business asset tracking, or similar enterprise applications (the Google Maps API can be used to track assets (such as cars, buses or other vehicles) as long as the tracking application is made available to the public without charge. For example, you may offer a free, public Maps API Implementation that displays real-time public transit or other transportation status information.

Even that language I feel is a bit fuzzy on if you can show user location or not along with routes, if you do not adjust the map coordinates automatically to follow the user.

Kendall Helmstetter Gelner
No plans on showing the user location.
Chris Van Buskirk
+3  A: 

You should not be allowed to display a route on top of the map. The terms state clearly that you are not allowed to display route guidance.

http://code.google.com/intl/de/apis/maps/iphone/terms.html

10.9 use the Service or Content with any products, systems, or applications for or in connection with:

(a) real time navigation or route guidance, including but not limited to turn-by-turn route guidance that is synchronized to the position of a user's sensor-enabled device;

(b) any systems or functions for automatic or autonomous control of vehicle behavior; or

(c) dispatch, fleet management, business asset tracking, or similar enterprise applications (the Google Maps API can be used to track assets (such as cars, buses or other vehicles) as long as the tracking application is made available to the public without charge. For example, you may offer a free, public Maps API Implementation that displays real-time public transit or other transportation status information.

You may want to look at http://www.cloudmade.com and the route-me library which gives you much more freedom.

Felix
Since I'm not a lawyer I don't know - when they say "route guidance" do they really mean "real time route guidance?" It sounds like Chris does not want to do it in real-time. Either way I still think it's a slippery slope to bother climbing.
bpapa
It says that it is not limited to turn-by-turn route guidance. So I would say it includes simply route guidance as it is implemented in the Google Maps App. The first part could also be interpreted "real time navigation" or "route guidance" (even non-real-time). If you don't follow this interpretation you are probably fine as long as you don't let the route and user location interact with each other.In any case you are left with the problem of finding the route and Google is very restrictive on their API.
Felix
This is a preordained route. The user is not entering in any data except pressing some mechanism that brings up the map. Let me reiterate is not driving instructions, or even walking instructions. Although I can't reveal what it is, how about this example. Say I wanted to show the path of Sherman's march on uimap...
Chris Van Buskirk
Also, I have no plans of showing the user location within the map. Although, that might be useful in some circumstances, it's not very practical, as the user may often not be in the area.
Chris Van Buskirk
I would probably go with the safe way and use something else, especially if your case is relatively simple. You don't want to jeopardize the approval or risk later discussions with Google. Also: route-me already has a class to display routes and you can customize the map style to fit your app and use-case on cloudmade.com
Felix
If your case is simple, then it makes it more worthwhile to try the standard route first and re-program if they do not accept.
Kendall Helmstetter Gelner
Felix - saying "is not limited to" is just wording to indicate that the example is just one example, and not the exact case. The key wording is "real time navigation or route guidance". If you are not showing the users location there is "real time" component on the screen.
Kendall Helmstetter Gelner
You might be right. I wasn't too sure if that part might not be understood as no "route guidance" (even without real-time) and no "real time navigation". But that is probably a matter of interpretation that we won't be able to figure out :)
Felix