Macoun 2013: MapKit Clustering Techniken

47
Macoun

description

Vortrag auf der Macoun 2013 in Frankfurt. Zusammenfassung: Der Einstieg in MapKit ist einfach, doch wer viele Markierungen anzeigen will stößt schon bald an die Grenzen des Machbaren. Der Vortrag zeigt am Beispiel der quelloffenen iPhone App “Stolpersteine”, wie man mehrere Tausend Markierungen auf einem MKMapView flüssig anzeigen kann.

Transcript of Macoun 2013: MapKit Clustering Techniken

Page 1: Macoun 2013: MapKit Clustering Techniken

Macoun⌘

Page 2: Macoun 2013: MapKit Clustering Techniken

MapKit Clustering Techniken@claushoefele

Page 3: Macoun 2013: MapKit Clustering Techniken

Stolpersteine

Page 4: Macoun 2013: MapKit Clustering Techniken

Ablauf

• Einführung MapKit

• Clustering

• iOS 7, Animationen

• Fragen

Page 5: Macoun 2013: MapKit Clustering Techniken

Einführung MapKit

Page 6: Macoun 2013: MapKit Clustering Techniken

MapKit

Draggable map annotations

Map overlaysHeading/tracking

Applevector tiles

Routing apps

Launch Maps APILocal search

3D

Directions API

Snapshots

Custom tiles

iOS 3 iOS 4 iOS 5 iOS 6 iOS 7

Page 7: Macoun 2013: MapKit Clustering Techniken

MKMapView

UIView

MKMapView

MKMapViewDelegate

Page 8: Macoun 2013: MapKit Clustering Techniken

Daten und Visualisierung

id <MKAnnotation>

UIView

MKAnnotationView

Page 9: Macoun 2013: MapKit Clustering Techniken

Annotations anzeigen

MKMapViewDelegate- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id < MKAnnotation >)annotation

MKMapView- (void)addAnnotation:(id < MKAnnotation >)annotation- (void)addAnnotations:(NSArray *)annotations

Page 10: Macoun 2013: MapKit Clustering Techniken

Standard Annotations/Overlays

Page 11: Macoun 2013: MapKit Clustering Techniken

Merkator-Projektion

Page 12: Macoun 2013: MapKit Clustering Techniken

Koordinatensysteme

CGRect, CGPoint, CGSize

• UIView Koordinaten:

MKCoordinateRegion, CLLocationCoordinate2D, MKCoordinateSpan

MKMapRect, MKMapPoint, MKMapSize

• Geografische Koordinaten:

•Merkator-Projektions Koordinaten:

Page 13: Macoun 2013: MapKit Clustering Techniken

Demo

Page 14: Macoun 2013: MapKit Clustering Techniken

Demo

Page 15: Macoun 2013: MapKit Clustering Techniken

Clustering

Page 16: Macoun 2013: MapKit Clustering Techniken

PlaneFinder

Dummy Screen

Page 17: Macoun 2013: MapKit Clustering Techniken

Wohin?

Dummy Screen

Page 18: Macoun 2013: MapKit Clustering Techniken

CarJump

Dummy Screen

Page 19: Macoun 2013: MapKit Clustering Techniken

Car2Go

Dummy Screen

(OCMapView?)

Page 20: Macoun 2013: MapKit Clustering Techniken

Öffnungszeiten

Dummy Screen

(Superpin)

Page 21: Macoun 2013: MapKit Clustering Techniken

Öffnungszeiten

Dummy Screen

(Superpin)

Page 22: Macoun 2013: MapKit Clustering Techniken

RailTime

Dummy Screen

(ADClusterMapView)

Page 23: Macoun 2013: MapKit Clustering Techniken

Fotos

Dummy Screen

Page 24: Macoun 2013: MapKit Clustering Techniken

Anforderungen

• Client-seitiges Clustering

• Schneller Algorithmus, aber trotzdem einfach zu verstehen

• Kein Popping

• Kein Grideffekt

• Ähnlich Fotos App

Page 25: Macoun 2013: MapKit Clustering Techniken

WWDC 2011/Session 111

Page 26: Macoun 2013: MapKit Clustering Techniken

Clustering Algorithmus I

Zellengröße

Page 27: Macoun 2013: MapKit Clustering Techniken

Clustering Algorithmus II

Page 28: Macoun 2013: MapKit Clustering Techniken

Clustering Algorithmus III

Überhang

Page 29: Macoun 2013: MapKit Clustering Techniken

Demo

Page 30: Macoun 2013: MapKit Clustering Techniken

Demo

Page 31: Macoun 2013: MapKit Clustering Techniken

iOS 7

Page 32: Macoun 2013: MapKit Clustering Techniken

Rotation und 3D

Rotation

Page 33: Macoun 2013: MapKit Clustering Techniken

[MKMapView visibleMapRect]

Page 34: Macoun 2013: MapKit Clustering Techniken

Demo

Page 35: Macoun 2013: MapKit Clustering Techniken

Demo

Page 36: Macoun 2013: MapKit Clustering Techniken

Animationen

Page 37: Macoun 2013: MapKit Clustering Techniken

Fotos

Dummy Screen

Page 38: Macoun 2013: MapKit Clustering Techniken

CarJump

Dummy Screen

Page 39: Macoun 2013: MapKit Clustering Techniken

Demo

Page 40: Macoun 2013: MapKit Clustering Techniken

Demo

Page 41: Macoun 2013: MapKit Clustering Techniken

Ausblick

Page 42: Macoun 2013: MapKit Clustering Techniken

KingPin

Page 43: Macoun 2013: MapKit Clustering Techniken

Google SDK

Page 44: Macoun 2013: MapKit Clustering Techniken

Sonstiges

• Semantischer Zoom

•Offline sync

• Active culling

Page 45: Macoun 2013: MapKit Clustering Techniken

• Merkator-Projektion http://commons.wikimedia.org/wiki/File:Mercator-proj.png von Jecowa (modified) (CC BY-SA)

• Azimutalprojektion http://commons.wikimedia.org/wiki/File:Azimutalprojektion-transversal_kl.jpg von Stefan Kühn (CC BY-SA)

• WWDC 2011 http://www.flickr.com/photos/kalleboo/5797720966/ von Karl Baron (CC BY)

• Google Maps SDK https://developers.google.com/maps/documentation/ios/ von Google (CC BY)

• Alle anderen Bilder und Videos von Claus Höfele (CC BY)

Quellenangaben

Page 46: Macoun 2013: MapKit Clustering Techniken

Fragen?https://github.com/optionu/stolpersteine-ios

Page 47: Macoun 2013: MapKit Clustering Techniken

Macoun⌘