Conecta
Nido Apple
Recibe ayuda de expertos
Registrate y pregunta
Es gratis y fácil
Recibe respuestas
Respuestas, votos y comentarios
Vota y selecciona respuestas
Recibe puntos, vota y da la solución
Pregunta
Crear mapa con diferentes iconos de pines o chinchetas un mapview con xcode 4.4
- preguntó
- Desarrolladores Apple
- 1009 Vistas
- 15 Respuestas
- abierta
Hola buenas tardes, soy nuevo en desarrollo de aplicaciones en xcode 4, tengo que crear un mapa que contenga diferentes iconos en los pines o chinchetas dependiendo el lugar de hubicacion por ejemplo si es un restaurante que me muestre una imagen de un tenedor pero si es un bar que me muestre una imagen de una copita espero que alguien me ayude no se por donde empezar he echo ejemplos en los que he modificado la imagen de pin pero no se como insertar otro pin con una imagen distinta
15 Respuestas
Bienvenido al sitio Gonzalo.
¿Y no tienes nada de la aplicación?
La estructura base.
El numero de views.
Como mostrar la información de cada local.
Las views para cada cosa.
Etc...
¿En si lo que quieres es un ejemplo? Porque si mencionas que ya tienes el código y ahí puedes modificar las cosas, en ese mismo código vienen ya puntos integrados y es cosa de que agregues los tuyos por medio de coordenadas o como este hecho tu ejemplo o vaya a ser tu aplicación.
Comenta que tienes hecho y veo que ejemplos te puedo dar.
Un favor, no abras dos temas sobre la misma cosa, así solo se complica la ayuda y se dividen las soluciones.
Saludos.
Por favor, accede o regístrate para añadir un comentario.
Primeramente una disculpa por los temas creados, mi archivo BrewMapViewController.h
con el sigiente código:
#import
#import
@interface BrewMapViewController : UIViewController {
IBOutletMKMapView *map;
NSArray *breweries;
}
@end
y BrewMapViewController.m con el codigo:
#import "BrewMapViewController.h"
#import "MyAnnotation.h"
@implementation BrewMapViewController
- (void)viewDidLoad {
[superviewDidLoad];
breweries = [[NSArrayalloc] initWithContentsOfFile:[[NSBundlemainBundle]
pathForResource:@"Breweries"
ofType:@"plist"]];
double minLat = [[breweriesvalueForKeyPath:@"@min.latitude"] doubleValue];
double maxLat = [[breweriesvalueForKeyPath:@"@max.latitude"] doubleValue];
double minLon = [[breweriesvalueForKeyPath:@"@min.longitude"] doubleValue];
double maxLon = [[breweriesvalueForKeyPath:@"@max.longitude"] doubleValue];
MKCoordinateRegion region;
region.center.latitude = (maxLat + minLat) / 2.0;
region.center.longitude = (maxLon + minLon) / 2.0;
region.span.latitudeDelta = (maxLat - minLat) * 1.05;
region.span.longitudeDelta = (maxLon - minLon) * 1.05;
map.region = region;
for (NSDictionary *breweryDict in breweries){
MyAnnotation *annotation = [[MyAnnotation alloc] initWithDictionary:breweryDict];
[map addAnnotation:annotation];
[annotation release];
}
}
//En esta parte del codigo cambio el icono del pin o chincheta
- (MKAnnotationView *)mapViewMKMapView *)mapView viewForAnnotationid )annotation{
if (map.userLocation == annotation){
returnnil;
}
NSString *identifier = @"MY_IDENTIFIER";
MKAnnotationView *annotationView = [mapdequeueReusableAnnotationViewWithIdentifier:identifier];
if (annotationView == nil){
annotationView = [[[MKAnnotationView alloc] initWithAnnotation:annotation
reuseIdentifier:identifier]
autorelease];
annotationView.image = [UIImage imageNamed:@"restaurant.png"];
annotationView.canShowCallout = YES;
annotationView.rightCalloutAccessoryView = [UIButtonbuttonWithType:UIButtonTypeDetailDisclosure];
}
return annotationView;
}
- (void)mapViewMKMapView *)mapView annotationViewMKAnnotationView *)view calloutAccessoryControlTappedUIControl *)control
{
NSLog(@"I've been tapped");
}
- (BOOL)shouldAutorotateToInterfaceOrientationUIInterfaceOrientation)interfaceOrientation
{
returnYES;
}
- (void)dealloc {
[breweriesrelease];
[maprelease];
[super dealloc];
}
[USER=3706]endy[/USER]
Si me cambia el icono del pin o chincheta pero lo que quiero eso me coloque un pin distinto dependiendo del establecimiento o lugar que esta en mapa por ejempplo si es un restarante que me coloque el icono restaurant.png pero si es un bar que coloque bar&antro.png
Por favor, accede o regístrate para añadir un comentario.
encontre este fragmento de codigo en donde utilizan un switch para solucionar este problema pero no le entiendo:
- (MKAnnotationView *)mapViewMKMapView *)theMapView viewForAnnotationid )annotation
{
if ([annotation isKindOfClass:[MapPin class]])
{
MKPinAnnotationView* customPinView = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier"MapPin"] autorelease];
MapPin * nota=annotation;
int idPin=[nota getIdPin];
punto * pinPunto= [puntos objectAtIndex: idPin];
//Asignar imagen al pin
UIImage *flagImage;
switch (pinPunto.modo)
{
case 4:
flagImage = [UIImage imageNamed"ico_map_1.png"];
break;
case 5:
flagImage = [UIImage imageNamed"ico_map_2.png"];
break;
case 6:
flagImage = [UIImage imageNamed"ico_map_3.png"];
break;
case 8:
flagImage = [UIImage imageNamed"ico_map_4.png"];
break;
case 10:
flagImage = [UIImage imageNamed"ico_map_5.png"];
break;
default:
flagImage = [UIImage imageNamed"ico_map_6.png"];
break;
}
customPinView.image = flagImage;
customPinView.opaque = NO;
}
customPinView.animatesDrop = NO;
customPinView.canShowCallout = YES;
return customPinView;
}
No como tendria que ir el codigo dentro de MapPin para poderlo usar en este codigo espero tu le entiendas y alla auna solución
Por favor, accede o regístrate para añadir un comentario.
Vamos por partes, porque si discutimos 10 codigos diferentes, no se va a entender nada.
¿Como tienes el archivo .plist en tu primer código? ¿Ya agregaste o modificaste ahí los pins?
Por favor, accede o regístrate para añadir un comentario.
No en el arvhivo .plist solo tengo los datos generales del lugar como su nombre, direccion, latitud y longitud, el problema es que no se como crear diferentes pines y que a cada pin le pueda cambiar la imagen, te dejo una impresion del archivo .plist
Estos datos solo los utilizo para crear los diferentes lugares, esto lo ace pero me pone la misma imagen en todos los lugares como se muestra en la imagen:
lo que quiero y no tengo la menor idea es de como asignarle a cada pin una imagen distinta tengo los iconos pero no se como asignarselas:
espero me entiendas no se como crear pines y que cada pin sea independiente, que si le cambio el de la imgen a uno, no se cambien en los demas solo en el que estoy cambiando...
Por favor, accede o regístrate para añadir un comentario.
En ese .plist tienes que crear otro exactamente igual y con los mismos datos. Solo le pones la información nueva y ya.
Agregas un Item 5 que sea diccionario, dos strings y dos números con su información correspondiente y ya, con eso te aparecen los que vayas agregando.
Por favor, accede o regístrate para añadir un comentario.
Si entiendo eso, pero no es lo que quiero, lo que espero o intento hacer esque cada pin tenga una imagen diferente dependiendo el lugar ya sea restaurare, bar, pastelería, cafe etc... no tienes algun código que que muestre cada pin o chincheta con una imagen distinta dentro del mapa?? estoy deseperado por favor
Por favor, accede o regístrate para añadir un comentario.
Ok, podrías agregar otro string en el plist para el icono. En donde tienes name, adress, latitude, agrega otro que sea icon y en el string solo tienes que poner elnombredelaimagen.png. Para los restaurantes el tenedor, para bares una copa, etc...
Así puedes llamar todo desde el mismo plist.
Tendrías que agregar icono como propiedad y después hacer el @synthesize en el archivo m.
@property (nonatomic, copy) NSString *icono;
Por favor, accede o regístrate para añadir un comentario.
Bien, he creado el item icono para cada lugar en mi archivo .plist como se muestra en la imagen
y en la en archivo .h agregue la propiedad icono
y coloque el @synthesize en el archivo .m
cual seria el paso siguiente???
Por favor, accede o regístrate para añadir un comentario.
Me parece que así no vas a poder hacer nada. No puedes solo poner pedazos de código en los archivos a ver que pasa. Todo tiene una estructura y una lógica para que funcione y creo que no haz revisado nada de lo básico en cuanto a el desarrollo de aplicaciones y como funciona en si Xcode y el Objective-C. Si me equivoco, me lo dices.
El problema es que cada proyecto depende de todos sus archivos y código que estés utilizando, entonces digamos que si no tienes una estructura definida y necesites en si algo exacto, es muy difícil darte un código que complete todo tu aplicación y ya funcione. ¿Me explico?
Si pones el código de todos los archivos de tu app (utilizando el botón de código para que sea legible), te ayudo a desarrollarla tal cual la necesites.
Mira este tutorial sobre MapKit, ahí puedes conocer todo el proceso y como funciona en sí. Ahí vienen todos los pasos de como se hace un mapa con los pina que tu quieras y puedes descargar el código del proyecto en Xcode para que pruebes con el.
Saludos.
Por favor, accede o regístrate para añadir un comentario.
- 1
- 2
- Siguiente »
Por favor, accede o regístrate para responder a esta pregunta.
En el blog
-
- 701017
- 1
- Ago 31, 2017
Otras Preguntas y Respuestas
- entre Desarrolladores (Desarrolladores)
Respuestas WordPress (Usuarios WordPress)
Sin Respuesta
-
- 572
- 0
- Jun 16
-
- 773
- 0
- May 8
-
- 787
- 0
- Feb 23
-
- 753
- 0
- Dic 7, 2023
-
- 325
- 0
- Nov 30, 2023
-
- 757
- 0
- Jul 7, 2023
-
- 874
- 0
- Ago 4, 2022
-
- 1031
- 0
- Feb 25, 2022
- ver todas
Actividad Reciente
Peter comentó hace 6 días
No veo las carpetas de Aplicaciones y Descargas en…Itavi respondió Nov 5
No veo las carpetas de Aplicaciones y Descargas en…DaleGarrote comentó Nov 5
IA ese perfecto desconocidoPeter comentó Nov 5
Comando de voz para desplazarse un número variable…Peter respondió Nov 5
No veo las carpetas de Aplicaciones y Descargas en…
Ultimas Respuestas
Peter respondió
Supongo que te refieres a tenerlas en el Dock, por
0Peter respondió
Efectivamente hay cientos o miles de cosas sobre I
1DJUNQUERA respondió
La versión de MacOS Sonoma habilita un comando de
1Peter respondió
Creo que lo mas sencillo es que te pagas en contac
1Peter respondió
Me parece que es un problema de RAM y va a depende
1mozzer respondió
0Peter respondió
Si es por el sistema, ya que requieres macOS Ventu
1Ultimos Comentarios
DaleGarrote comentó
...