2010-10-05 4 views
1

Je rencontre un problème avec le dessin à des zones en dehors du MKMapRect passé à drawMapRect:mapRect:zoomScale:inContext dans ma classe dérivée MKOverlayView. J'essaye de dessiner un triangle pour chaque coordonnée dans une collection et le problème se produit quand la coordonnée est près du bord du MKMapRect. Voir l'image ci-dessous pour un exemple du problème.Coupure dans MKOverlayView: drawMapRect

alt text

Dans l'image, les boîtes de lumière rouge indiquent le MKMapRect étant rendus dans chaque appel à drawMapRect. Le problème est illustré dans le cercle rouge où, comme vous pouvez le voir, seule une partie du triangle est rendue. Je suppose qu'il est coupé au MKMapRect, bien que la documentation pour MKOverlayView:drawMapRect me fasse penser que cela ne devrait pas se produire.

De la documentation:

Vous ne devriez pas faire des hypothèses que le cadre de la vue coïncide avec le rectangle de délimitation de la superposition. Le cadre de la vue est en fait plus grand que le rectangle de délimitation pour vous permettre de dessiner des lignes pour des choses comme des routes qui pourraient être situées directement sur la bordure de ce rectangle.

Ma solution actuelle est de dessiner des objets plus d'une fois si elles sont dans un maprect qui est légèrement plus grande que puis maprect donné à drawMapRect mais cela me fait de tirer certaines choses plus que nécessaire.

Est-ce que quelqu'un connaît un moyen d'augmenter la taille de la zone de découpage dans drawMapRect donc ce n'est pas un problème? Toutes les autres suggestions sont également les bienvenues.

Répondre

1

J'ai fini par ajouter un tampon au rect transmis à drawMapRect: mapRect: zoomScale: inContext et en utilisant cela pour déterminer les objets à dessiner. Cela se traduit par plus d'objets dessinés que nécessaire, mais pas de beaucoup.

Questions connexes