2010-10-07 20 views
3

Je crée une application iPhone pour OS4.0 et j'essaie d'intégrer une carte personnalisée avec un MKMapView standard. On m'a fourni une carte au format .eps (image vectorielle), et je veux en quelque sorte superposer cela sur un MKMapView et restreindre les limites de défilement de la carte afin que les utilisateurs ne puissent pas défiler en dehors des limites de la carte personnalisée. Quelle est la meilleure façon d'y parvenir?Utilisation de la carte personnalisée avec MKMapKit

J'ai lu des trucs sur l'hébergement de cartes sur un serveur, mais cela semble trop complexe pour mon application. Ce serait juste une carte pour une attraction à peu près la taille d'un zoo public, donc je pense qu'il serait concevable de simplement convertir le fichier .eps en fichier .png, et de le superposer, mais cela pourrait ne pas donner les meilleures performances . Je comprends que je pourrais concevable utiliser un UIScrollView pour faire le travail, mais le problème est que j'ai MKPinAnnotationViews dynamiquement placé placé sur la carte, dont la position doit être basée sur la latitude et la longitude, donc je ne peux pas penser un moyen élégant ou raisonnable de le faire avec un scrollview. Des idées?

Merci! -Matt

+0

Il y a une démo d'Apple, mais vous devez probablement avoir une inscription payante pour le télécharger. Je l'ai déjà fait mais avec des polygones personnalisés et ce n'est pas une mince affaire et peut-être même plus que de pouvoir l'afficher ici. – Rudiger

+0

Les formats d'image vectorielle tels que pdf ne fonctionnent pas particulièrement bien lors du défilement et du zoom. Vous devez diviser les eps en pngs et utiliser le code TileMap comme suggéré ci-dessous. Vous améliorez les performances, mais cela peut considérablement augmenter la taille de votre application en fonction de la taille de l'image vectorielle/du nombre de niveaux de zoom pris en charge, etc. Si l'image n'est pas trop grande, elle ira en mémoire pour le pire appareil que vous ciblez , vous pouvez sortir avec placer le png dans une vue de défilement. – Willster

Répondre

3

Apple a un bon exemple de code qui vous montrera ce que vous devez faire. Découvrez l'exemple TileMap - il est disponible dans le cadre du téléchargement des échantillons WWDC 2010 (gratuit).

Il vous montre comment utiliser l'utilitaire gdal2tiles pour convertir une carte d'entrée en une arborescence de mosaïques de superposition.

Une autre bonne partie de l'exemple de code Apple à consulter est HazardMap, qui fait partie des exemples standard de SDK.