MapKit vs. Google Maps SDK @ Macoun 2014

34
Apple MapKit vs. Google Maps SDK Ortwin Gentz @ortwingentz αortwin

Transcript of MapKit vs. Google Maps SDK @ Macoun 2014

Page 1: MapKit vs. Google Maps SDK @ Macoun 2014

Apple MapKit vs.Google Maps SDK

Ortwin Gentz@ortwingentz αortwin

Page 2: MapKit vs. Google Maps SDK @ Macoun 2014

Warum Google?

Page 3: MapKit vs. Google Maps SDK @ Macoun 2014
Page 4: MapKit vs. Google Maps SDK @ Macoun 2014
Page 5: MapKit vs. Google Maps SDK @ Macoun 2014

MapKit Google Maps SDK

Vektorbasiert ✔ ✔

Normal, Satellit, Hybrid ✔ ✔

Gelände ✔

Eigene Tiles, ersetzend ✔, ✔ ✔, ✔

Indoor, Stockwerke ✔

Gebäude ✔ ✔

POIs ✔

Verkehr ✔

Street View ✔

Page 6: MapKit vs. Google Maps SDK @ Macoun 2014

SteuerungKartenausschnitt

Page 7: MapKit vs. Google Maps SDK @ Macoun 2014

MapKit Google Maps SDK

Drehen ✔ ✔

Neigen ✔ ✔

Zoombegrenzung ✔

Kamera-Animationen ✔ ✔

↳ mit Timing-Kontrolle UIView-basiert CALayer-basiert

Edge Insets➜

Page 8: MapKit vs. Google Maps SDK @ Macoun 2014

Hands on

Page 9: MapKit vs. Google Maps SDK @ Macoun 2014

MapKit Google Maps SDK

Drehen ✔ ✔

Neigen ✔ ✔

Zoombegrenzung ✔

Kamera-Animationen ✔ ✔

↳ mit Timing-Kontrolle UIView-basiert CALayer-basiert

Edge Insets

➜ privat ✔

Page 10: MapKit vs. Google Maps SDK @ Macoun 2014

Gesten

Page 11: MapKit vs. Google Maps SDK @ Macoun 2014

MapKit Google Maps SDK

Unterscheidung manuelle undprogrammatische Updates

bedingt lösbar➜ Macoun 2010

Laufende Region-Updates ✔

Non-Annotation Tap-Erkennung➜

Page 12: MapKit vs. Google Maps SDK @ Macoun 2014

Hands on

Page 13: MapKit vs. Google Maps SDK @ Macoun 2014

MapKit Google Maps SDK

Unterscheidung manuelle undprogrammatische Updates

bedingt lösbar➜ Macoun 2010

Laufende Region-Updates ✔

Non-Annotation Tap-Erkennung

Long-Tap Erkennung lösbar ✔

Standort-Tracking ✔

lösbar ✔

Page 14: MapKit vs. Google Maps SDK @ Macoun 2014

Hands on

Page 15: MapKit vs. Google Maps SDK @ Macoun 2014

MapKit Google Maps SDK

Unterscheidung manuelle undprogrammatische Updates

bedingt lösbar➜ Macoun 2010

Laufende Region-Updates ✔

Non-Annotation Tap-Erkennung

Long-Tap Erkennung lösbar ✔

Standort-Tracking ✔

lösbar ✔

lösbar

Page 16: MapKit vs. Google Maps SDK @ Macoun 2014

Annotations / Marker

Page 17: MapKit vs. Google Maps SDK @ Macoun 2014

titlesubtitlecolorimage

animationdraggable

UIViewcalloutAccessoryViews

Custom drawnkein Highlighting

Page 18: MapKit vs. Google Maps SDK @ Macoun 2014

Annotationserstellen

Page 19: MapKit vs. Google Maps SDK @ Macoun 2014

MapKit Google Maps SDK

id<MKAnnotation> erstellen id<GMSMarker> erstellen

[mapView addAnnotation:] marker.map = mapView;

-[MKMapView:viewForAnnotation:] implementieren

-(UIView*)mapView: markerInfoWindow:

[mapView removeAnnotation:] marker.map = nil;

Page 20: MapKit vs. Google Maps SDK @ Macoun 2014

Annotation-Taps

Page 21: MapKit vs. Google Maps SDK @ Macoun 2014

MapKit Google Maps SDK

-(void)mapView: didSelectAnnotationView:

-(BOOL)mapView: didTapMarker:

-(void)mapView: annotationView: calloutAccessoryControlTapped:

-(void)mapView: didTapInfoWindowOfMarker

-(void)mapView: didDeSelectAnnotationView:

-(void)mapView: didTapAtCoordinate:

-[MKAnnotationView setSelected:animated:]

Page 22: MapKit vs. Google Maps SDK @ Macoun 2014

Draggable Annotations

Page 23: MapKit vs. Google Maps SDK @ Macoun 2014

Demo

Page 24: MapKit vs. Google Maps SDK @ Macoun 2014

MapKit Google Maps SDK

annotationView.draggable = YES; marker.draggable = YES;

-mapView:annotationView:didChangeDragState:fromOldState:

-mapView:didBeginDraggingMarker:

-[MKAnnotationView setDragState:animated:]

-mapView:didDragMarker:

-mapView:didEndDraggingMarker:

Page 25: MapKit vs. Google Maps SDK @ Macoun 2014

Overlays

Page 26: MapKit vs. Google Maps SDK @ Macoun 2014

MapKit Google Maps SDK

Polylines und Polygone ✔ ✔

Geodätische Linie ✔ ✔

Kreise ✔ ✔

Core Graphics Operationen ✔

Bilder ✔ ✔

Tiles ✔ ✔

↳ oberhalb Label-Ebene ✔

Selektion ✔

Page 27: MapKit vs. Google Maps SDK @ Macoun 2014

MKOverlay

MKOverlayRenderer

GMSOverlay

Geometrie

Darstellung

Geometrie

Darstellung

MapKit Google Maps SDK

Page 28: MapKit vs. Google Maps SDK @ Macoun 2014

MapKit Google Maps SDK+[MKPolygon  polygonWithCoordinates:count:]

[[GMSPolygon alloc] init] polygon.path polygon.fillColor/strokeColor

-[MKMapView addOverlay:] polygon.map = mapView;

-mapView:rendererForOverlay:

MKPolygonRenderer. fillColor/strokeColor

polygon.tappable = YES;

-(void)mapView: didTapAtCoordinate:

Page 29: MapKit vs. Google Maps SDK @ Macoun 2014

Tile Overlays

Page 30: MapKit vs. Google Maps SDK @ Macoun 2014

Hands on

Page 31: MapKit vs. Google Maps SDK @ Macoun 2014
Page 32: MapKit vs. Google Maps SDK @ Macoun 2014

Generelle Erwägungen

Page 33: MapKit vs. Google Maps SDK @ Macoun 2014

Generelle Erwägungen

• Programmierung gegen bekannte Framework-Version

• Bug-Tracker offen, Google ist responsive

• Hohes Innovationstempo

• Terms of Use anschauen

Page 34: MapKit vs. Google Maps SDK @ Macoun 2014

Fragen? Ortwin Gentz

@ortwingentz · αortwin

Wohin? Streets