Odpowiedz na ten temat
Pokaż wyniki od 1 do 4 z 4

  1. Dołączył
    May 2010
    Postów
    97

    Cytuj | #1

    Mam problem z dodawaniem lokacji na mapie przez dotknieciem miejsca gdize powinna sie pojawic;/
    Generalnie mam dodana opcje z wykrywaniem longPressa
    Kod:
    UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(hitTest:withEvent:)];
    
    	[mapView addGestureRecognizer:longPress ];
    i metode do przechwytywania zdarzenia:

    Kod:
    - (void)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
    	if(licz%2!=0){
            CLLocationCoordinate2D coord= [mapView convertPoint:point toCoordinateFromView:self.mapView];
    		nowePunkty *newP=[[nowePunkty alloc]create:coord.latitude:coord.longitude:@"new":@"sadas"];
    		[mapView addAnnotation:newP];
    		NSLog(@"%f,%f",coord.latitude,coord.longitude);
    		UIAlertView *alert = [[UIAlertView alloc]
    							  initWithTitle:@"Dodano nowy punkt!"
    							  message:nil
    							  delegate:self
    							  cancelButtonTitle:@"OK"
    							  otherButtonTitles:nil, nil];
    		[alert show];
    	
    		[alert release];
    	
    	}
    	licz++;
    
    }
    Jednak nslog wyswietla zupelnie inne wspolrzedne niz te ktore powinny byc w danym miejscu, ogolnie to punkt pojawia sie albo nie tam gdzie trzeba, albo wcale go nie ma;/
    Dodatkowo mam jeszcze problem poniewaz przy dlugim tapnieciu metoda pojawiala sie 2 razy ( raz jak wcisnalem i 2gi raz jak puscilem ) czy da sie to jakos mniej łopatologicznie roziwazac niz uzywajac licznika, tak jak ja to zrobilem? I jak poprawic dodawanie nowych punktow?
    Komputer: MacBook pro 15" 2010
    Telefon: iPhone 4
    Odtwarzacz: iPhone 4



  2. Dołączył
    May 2010
    Postów
    97

    Cytuj | #2

    ok do zamkniecia, udalo sie ogarnac
    -chyba ze ktos zainteresowany to pisac
    Komputer: MacBook pro 15" 2010
    Telefon: iPhone 4
    Odtwarzacz: iPhone 4

  3. JKK
    Mężczyzna JKK jest offline
    Avatar JKK
    Dołączył
    Jan 2008
    Skąd
    Osolin
    Postów
    400

    Cytuj | #3

    No podziel się
    Komputer: MacBook C2D 2,16GHz; iBook G3 600
    Telefon: iPhone 3GS 16GB White
    Tablet: iPad WiFi 32GB
    WWW: http://macwyznawca.pl/
    MacWyznawca i Apple Fanboy!
    Moje programy na iPhone i iPad'a | Na Mac OS: Faqt - Faktury na Mac OS.


  4. Dołączył
    May 2010
    Postów
    97

    Cytuj | #4

    na poczatku do naszej mapy dodajemy obsluge longpressa:
    Kod:
    UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPressGesture:)];
    [mapView addGestureRecognizer:longPress ];
    [longPress release];
    a nastepnie metoda wylapujaca zdarzenie i dodajaca punkt:
    Kod:
    -(void)handleLongPressGesture:(UIGestureRecognizer*)sender {
    	
    	
    	if (sender.state == UIGestureRecognizerStateEnded)
    		
    	{
    
    		nieskonczone=true;
    		[self.mapView removeGestureRecognizer:sender];
    	}
    	
    	else
    		
    	{
    	
    		CGPoint point = [sender locationInView:self.mapView];
    		
    		CLLocationCoordinate2D locCoord = [self.mapView convertPoint:point toCoordinateFromView:self.mapView];
    	
    		if(nieskonczone){
    	
    		nowoDodany=[[[nowePunkty alloc] create:locCoord.latitude:locCoord.longitude:@" ":@" "] autorelease];
    	    [mapView addAnnotation:nowoDodany];
    		nieskonczone=false;
    		
    		}
    	}
    }
    Komputer: MacBook pro 15" 2010
    Telefon: iPhone 4
    Odtwarzacz: iPhone 4

Odpowiedz na ten temat