2010-12-10 44 views
2

Ok, donc j'ai vu des questions similaires à cela, mais je n'arrive pas à en trouver qui répondent vraiment à la question alors voilà.Est-il possible de faire pivoter un MKMapView tout en affichant le logo Google?

Je suis en rotation (ou voudrais) un MKMapView:

[mapView setTransform:CGAffineTransformMakeRotation(angle)]; 

Cela fonctionne bien, sauf que le logo Google se tourner avec elle, que je l'entends est un non non. En outre, je voudrais réellement rendre ma mapView plus grande que l'écran afin que l'écran entier affiche toujours la carte, mais cela ferait également disparaître le logo Google de l'écran.

Alors est-il possible de faire pivoter un MkMapView tout en affichant le Logo Google ??? Peut-être un appel vers certains AP Google Web

+0

Hey Fraggle, avez-vous enfin envoyé votre application avec le logo déplacé? Est-ce que ça a traversé? Je suis dans une situation similaire en ce moment, je dois déplacer le logo de Google, mais je me demande si cela vaut la peine de le faire, ou si je devrais utiliser la carte ouverte tout de suite. – ayoy

+0

Oui, je l'ai fait. Assurez-vous simplement que le logo Google s'affiche toujours au bon endroit. Donc, le logo Google n'est pas "déplacé", il semble toujours le même. La carte est cependant pivotée. – Fraggle

Répondre

2

J'ai trouvé un moyen de le faire, même si je me sens encore son un peu un hack parce que Apple pourrait changer les choses dans les prochaines versions qui vont casser cette technique.

MKMapView a 2 sous-vues. L'un d'entre eux est un UIImageView qui contient l'image "Google" à des fins de protection des droits d'auteur.

Donc IB vous pouvez configurer votre propre UIImageView qui se trouve dans le coin inférieur gauche, et dans le code que vous pouvez définir son image à la même image que celle du UIImageView dans la vue de la carte:

-(void) getImage { 
    for(UIView *v in mapView.subviews) { 

     if([v isKindOfClass:[UIImageView class]]) { 
      NSLog(@"%@",v); 
      self.cpyView.image=((UIImageView *)v).image; 
     } 
    } 

} 

Maintenant, lorsque vous faites pivoter votre MKMapView, votre UIImageView ne sera pas pivoté.

Maintenant l'autre astuce ici est d'avoir le MKMapView incorporé dans une autre vue (viewForMap) (idée empruntée à Beginning iOS 4 par Wei-Meng Lee). Déposez un UIView dans IB et dimensionnez-le à la taille que vous voulez que la carte visible soit. Réglez-le pour découper les sous-vues dans IB.

Dans le code, vous allouerez] initWithFrame et MKMapView afin que MKMapView soit centré sur ce viewForMap, mais il est plus grand que lui.

Par exemple, si votre viewForMap est de 320, 372, faites ceci:

mapView=[[MKMapView alloc] initWithFrame:CGRectMake(-90,-64,500,500)]; 
mapView.mapType=MKMapTypeHybrid; 
mapView.delegate=self; 
[viewForMap addSubview:mapView]; 

Maintenant, vous pouvez faire pivoter votre carte mapView.transform=CGAffineTransformMakeRotation(-M_PI/2);

Votre UIImageView qui tient l'image "Google" ne sera pas faire pivoter afin qu'il reste visible. L'image "Google" à l'intérieur de MKMapView sera hors écran.

+0

Votre première suggestion ici est intéressante dans mon cas ... Dans mon cas, j'ai mis un UIImageView sur le dessus de la carte et il semble qu'il couvre en partie le logo de Google. Je vais essayer de simplement déplacer l'image Google elle-même, sans en ajouter une autre ailleurs. Je vais juste le mettre dans le coin supérieur gauche, ajuster son cadre. J'espère que ça va bien. :-P Je ne suppose pas que quelqu'un d'autre a essayé ça et s'en est tiré? – Jonny

+0

Cette solution a fonctionné parfaitement sur iPhone mais ne montre pas le logo google en version iPad. Une idée pourquoi? – Jorge

+0

@Jorge -> Gardez à l'esprit que Apple ne va pas avoir Google Maps en tant que leur fournisseur dans iOS 6, qui sortira bientôt. Cependant, pour être compatible avec Fraggle

0

Vous pouvez faire ceci:

  1. Faire une image logo "Google" dans un programme de retouche d'image.
  2. Augmentez la taille de votre MKMapView, qui n'aurait pas vu le logo.
  3. Ajoutez une sous-vue de votre photo à MKMapView.

Si vous faites sans le logo de Google, votre demande sera rejetée selon les modalités suivantes:

8.6 images Google Maps et Google Earth obtenu par l'API Google Maps peuvent être utilisés dans une application si toutes les caractéristiques de marque du contenu original restent inchangées et entièrement visibles. Apps qui couvrent ou modifier l'identification des détenteurs de logo ou droits d'auteur de Google seront rejetées

Et le meilleur de tous, utilisez ceci: http://wiki.openstreetmap.org/wiki/IPhone

+0

Bon, c'est certainement une approche. Mais j'espérais quelque chose qui était peut-être fourni dans le cadre à cette fin. Lors du débogage de mon application, j'ai remarqué que mapView possède deux sous-vues, dont l'une a une taille et une origine qui ressemblent à celles du logo Google, mais je n'ai pas encore creusé. – Fraggle