Comment puis-je créer une superposition d'image et ajouter à MKMapView?
Je suis en train d'apprendre MapKit et je suis maintenant essayer d'ajouter une image comme une superposition de la carte.
Je n'arrive pas à trouver aucun exemple de code pour aider à expliquer comment le faire.
Pouvez-vous les gars s'il vous plaît aider moi comment faire pour créer MKOverlay
s et les ajouter à MKMapKit
.
Merci d'avance..
Je ne sais pas si j'ai bien compris exactement votre questione. Peu de temps, j'avais besoin d'utiliser MKPointAnnotation non pas sur une carte, mais sur une image capturée à partir de l'appareil photo du téléphone intelligent. Je dois donc travailler avec des annotations sur une image. est-ce que vous voulais doo lorsque vous m'avez demandé MKOverlay?
Ntr Achanta : Allez par le biais de tutoriels ci-dessous. raywenderlich.com/30001/... raywenderlich.com/87008/overlay-views-mapkit-swift-tutorial
Ntr Achanta : Allez par le biais de tutoriels ci-dessous. raywenderlich.com/30001/... raywenderlich.com/87008/overlay-views-mapkit-swift-tutorial
OriginalL'auteur Jr Ntr Achanta | 2011-03-12
Vous devez vous connecter pour publier un commentaire.
Voici un exemple de comment définit un
UIImage
à unMKMapView
de superposition. Certains paramètres (coordonnées et le chemin de l'image) sont fixes, mais le code peut être facilement changé, je suppose.Créer une classe qui est conforme à
MKOverlay
:MapOverlay.h
MapOverlay.m
Créer une classe qui est conforme à MKOverlayView:
MapOverlayView.h
MapOverlayView.m
Ajouter la superposition de la MKMapView:
Sur la mapView délégué, de mettre en œuvre la viewForOverlay:
Espère que cela aide!
Quelles sont les lignes au-dessus de la mise en œuvre censé ressembler? Le OverlayView besoin d'être créé en tant que sous-classe de UIView, ou NSObject?
Votre code fonctionne comme un charme, même si je suis toujours pas clair sur ce type de sous-classe, j'ai été la création d'un Nouveau Fichier. En tout cas, je l'ajustement de votre code dans Apple MapCallouts échantillon et je ne savais pas que mon image est en cours d'élaboration trop petit. Un all black, image de 2000x2000 pixels affichés à une taille minuscule. Je suis sur la bonne voie grâce à vous. Des acclamations.
j'ai trouvé que l'image était apparaissant mis à l'envers. trouvé que cela fonctionnait mieux. - (void)drawMapRect:(MKMapRect)mapRect zoomScale:(MKZoomScale)zoomScale inContext:(CGContextRef)contexte { MKMapRect theMapRect = [self.superposition boundingMapRect]; CGRect theRect = [self rectForMapRect:theMapRect]; UIGraphicsPushContext(contexte); [_image drawInRect:theRect blendMode:kCGBlendModeNormal alpha:1.0]; UIGraphicsPopContext(); }
En fait, MKMapPoint upperLeft = MKMapPointForCoordinate(de soi.coordonner); ne pas faire ce que vous semblez penser que c'est fait: l'auto.coordonner, en cours de mise en œuvre de la MKOverlay protocole, renvoie la "Le centre approximatif point de la zone de superposition", selon la documentation, pas le point en haut à gauche.
OriginalL'auteur Raphael Petegrosso
Documentation:
Exemple de code:
W: Parce que c'est juste une grosse liste de liens vers de la documentation, je n'ai pas vraiment faire quoi que ce soit.
OriginalL'auteur
Dans la recherche d'une solution pour mon problème, j'en reviens à cette question, et ici et aussi ici
Ils étaient tous répondre à la question que j'ai posée, mais dans le sens inverse.
J'avais besoin pour déterminer si une UIView, c'est à dire un dessiner un carré sur mon MapView contient une carte code pin, si elle n'laissez-moi savoir si je peux le supprimer ou de le sélectionner etc.
Enfin, après avoir essayé de convertir mon UIView dans certains MKCoordinateRegion ou similaire, j'ai pensé à travailler à rebours. Au lieu de tourner à mon UIView ou de place dans la carte de la folie, j'ai tourné les broches en simple CGPoints et fait un simple Rect contient des points. Qui a fini par être ma solution.. après environ 2 heures!
Espère que cela aide quelqu'un en bas de la ligne
OriginalL'auteur DogCoffee
De simplement en regardant la documentation d'Apple pour la
MKOverlay
protocole, il n'a pas l'air très complexe. Il suffit de faire une classe pour faire ce que vous devez calculer la superposition et assurez-vous qu'il est conforme à ce protocole. Cela signifie que vous devez avoir lacoordinate
etboundingMapRect
propriétés ainsi que d'une mise en œuvre pourintersectsMapRect:
. La Pomme docs expliquer tout cela.Prendre un coup d'oeil à la HazardMap exemple de code à partir d'Apple. Il utilise un overlays vue comme vous voulez le faire pour afficher une image dans la superposition. Vous avez simplement besoin de mettre en œuvre
mapView:viewForOverlay:
dans votreMKMapViewDelegate
de classe et de renvoyer une nouvelle instance de votre sous-classe deMKOverlayView
pour obtenir la coutume de superposition sur l'écran.OriginalL'auteur Marc W