2010-08-20 7 views
0

J'ai créé tout un tas de superpositions en utilisant MKPolygon et créé dans MKPolygonView. Cela fonctionne bien, mais l'un des superpositions a une charge de points (environ 800 points) et cela provoque des problèmes de mémoire et de performance. J'ai essayé shouldRasterize sur le MKPolygonView mais cela a eu l'effet inverse dont je ne suis pas surpris.Problème de performance MKPolygon

Y a-t-il autre chose que je peux faire pour augmenter les performances en plus de diminuer le nombre de points (que je suis en train de faire)?

Répondre

1

Il s'agit d'un problème connu par Apple mais peu susceptible de changer. Fondamentalement rien de plus que quelques MKOverlayViews vous aurez des problèmes de performance, peu importe ce que votre matériel. Ce que vous devez essentiellement faire est de sous-classer MKPolygonView et de fusionner tous les MKPolygons en un seul MKPolygonView.

Le code est disponible sur les forums Apple mais comme je ne l'ai pas écrit, je ne pense pas que je devrais le poster ici.

+0

La suggestion de Bingy de simplifier le polygone aide un peu. La fusion des polygones en une vue est idéale, je pense dans cette situation, mais vous ne pouvez pas réellement le faire en 3.2.x ... Nous pouvons réussir à instancier MKPolygon et MKPolyline (+ vues connexes) en 3.2, mais une fois que vous essayer de créer une sous-classe de l'une de ces classes, tout s'effondre en raison de conditions iOS4 dans le processus de liaison et autres. –

+0

J'avais compris que les overlays avaient été introduits pour la première fois dans iOS4 – Rudiger

+0

Oui, c'est vrai, mais ils sont toujours disponibles sur iOS 3.2, curieusement. Je construis mon application avec le SDK 4.1 et définissez 3.2 comme cible de périphérique minimale. Après quelques vérifications, MKPolygon, MKPolyline et leurs "Vues" sont fonctionnels dans iOS 3.2 ... Je peux même faire des vérifications d'exécution pour voir si ces méthodes sont disponibles et elles le sont. Je craignais que cela ne passerait pas l'App Store, mais il l'a fait! Voir les captures d'écran sur iOS 3.2 à http://www.texlege.com/ –

0

Je chercherais à réduire le nombre de points dans le polygone. selon où vous l'avez obtenu. La plupart des données de manipulation géopatiales ont des fonctions qui vous permettront de réduire le nombre de points dans un polygone. (tout ce que vous devez faire est de fournir une mesure de précision.)

+0

En fait, ce n'était pas le problème comme initialement pensé. Il y a encore 800 points mais si vous fusionnez le MKPolygonView en un, cela fonctionne parfaitement. – Rudiger