Is there any way to change the appearance of MKMapView? - iphone

Is there a way to manipulate the look of MKMapView (colors etc) like with Core Image and photos? I thought about making the map black and white or something like that. Someone I know did this in order to display a tiny map on the display of a Metawatch by basically taking snapshots of an MKMapView, turning them into binary images and sending them to the watch.
I need to do a similiar thing in real time (and on the iPhone's display). Hope you guys understand what I'm trying to ask here :)
Thanks in advance!

Not MapKit directly, but the MapBox iOS SDK can do that and more, plus is meant to behave like MapKit.

I found the following question (and mainly the answer) as great solution
Hiding mapview when mapoverlay is visible ios7
using MKTileOverlay and http://maps.stamen.com site
by the way .... they have http://maps.stamen.com/#toner/12/37.7706/-122.3782 which is a black and white map

Related

Zooming only an image in mobile Safari

I'm looking to see if anyone has experience with this. I'm a developer first and a designer second, so this is really not my strongest suit.
I have a project I'm working on where the goal is to get image and text side-by-side in landscape mode on the iPhone. I'd like to be able to zoom in on the image using a pinch like normal, but not zoom in on the text as well while that is happening. I don't know if this is even possible or what kind of hacks it would take to get it working.
If someone thinks this is bad in general from a UI perspective, I am open to suggestions.
I have considered keeping two copies of the image (low and high res) and then swapping them out inside of div with an overflow: scroll; so users can get a zoomed version and then scroll around. It doesn't give you the full effect of zooming, but it might accomplish a similar goal. I don't know if this would work either.
If anyone has suggestions or experience on the subject, please chime in. Thank you!
To do this in mobile safari you would probably have to use javascript. Theres a jQuery plugin here: http://plugins.jquery.com/project/pinch
Might be of some help
If you want to use Mobile Safari, then you will need a touch framework like jTouch to simplify things.
Natively, you should put your image and text inside a UIScrollView, and return the image view in the the viewForZoomingInScrollView: (in the scroll view's delegates) to the image view.
Is that what you want?

Question about UIWindow backgrounds

I have written a powerful trig calculator, but I want to use the "linen" background. I have been able to implement this in interface builder, but I get a 'yellow triangle' warning in Xcode that says it is not compatible with something like iOS 3.2 and earlier. And I'm afraid Apple will reject it if says that. I want to know the code that I can use to change both the text color (from black to white) and the background texture (from blue and white vertical stripes to the darker linen). I already know a few ways to test and apply info about the users current firmware version, but I'm always open to suggestions. Any help will be GREATLY APPRECIATED!!! I have just read the first 3 answers and duh I feel kinda stupid, that makes sense. But I would also like to know how to do this and make it like a user configurable "setting" just to make it feel nicer :-) thanks
The linen background is a tiling UIColor. You can create a tile color programmatically and apply this tiled background anywhere you would set a backgroundColor. Even on UIWindow.
If you want to maintain compatibility to old iOS versions, replace the built in background "color" (such as linen) with an UIImageView showing an image of it.
Write a simple app, filling the entire screen with the background, make a screenshot, then place it behind all other UI elements.

iPhone MKMapKit Image Overlay

How can an image overlay be applied to a MKMapView? Basically, when you zoom in a specific location, I want an image to appear on top of the map that gives a more detailed view of the location.
I've had a look around and found different types of methods to use. I had a working example for an older SDK using the DrawMapRect function but this no longer seems to work on 4.2.
This is a good place to start...
http://developer.apple.com/library/ios/#documentation/MapKit/Reference/MKOverlayView_class/Reference/Reference.html
I was looking for polygon sample code though.
#omniscian: If you have solved it you should post something helpful for others. This page has a high google rank.

Resizing Custom MKAnnotationView According to MapKit Zoom Level

Here is the situation:
I am displaying images on the map by using custom annotations. Everything works fine but I would like to improve it visually by resizing the AnnotationView so that it shrinks as the map is zoomed out. I want to do this because, obviously, more annotations fill up the screen and need to be shrunk so that they don't overlap each other too much and the user can see more annotations. (Of course, I would like to enlarge AnnotationViews when the map is zoomed in again).
I have achieved this by removing all annotations from the map and adding them back again, whenever regionDidChangeAnimated is called. However, these images are loaded from the internet, so downloading the images again (since the annotations have been removed) doesn't seem to make sense.
I hope I have explained the situation well, and hope to contribute to SO in the future.
Thanks in advance.
P.S. I'm developing with iOS 4.0
Since you are using iOS 4.0 I would suggest using a class that conforms to the MKOverlay protocol instead of MKAnnotationView. Overlays zoom with the map and will scale appropriately. You can probably use 1 overlay to handle all your annotations. Check out the HazardMap demo Apple provided in the 2010 WWDC talks on http://developer.apple.com
Alternatively, you could use something like the k nearest neighbors algorithm to group annotations per zoom scale. However, that can be kind of slow if you have a lot of annotations. I tried it once with several thousand annotations and did not like the performance hit that was incurred. I think < 1000 annotations might have decent performance with this method though.
It sounds like you're already on the right path and that the only real problem is the downloading of the images. Is there any particular reason you can't cache them by writing them to the documents directory (or the cache directory if you want them to go way when the app quits) when you receive them and look there first before displaying them?

Showing Driving Directions in MapKit

is there any way to show the driving directions in iphones MapKit?
is there any way to get the coordinates and names of a route as an XML or in other formates from google MAPs API ?
eg , http://maps.google.com/maps?f=d&hl=en&geocode=&saddr=39.23232,-103.343433&daddr=41.23232,-104.344343&ie=UTF8&z=12
No, you cannot use MapKit for driving directions. It does not support this.
However, you could improvise a transparent view on top of MapKit and draw something, but nothing native to MapKit.
EDIT: Here is a sample of drawing routes yourself:
http://spitzkoff.com/craig/?p=65
You should try Kishikawa Katsumi's project MapKit-Route-Directions is really well made and useful. You can find the sample project at github https://github.com/kishikawakatsumi/MapKit-Route-Directions.git
You can add to your view UIWebView. Than load to UIWebView something like this
http://code.google.com/apis/maps/documentation/examples/directions-simple.html