2016-02-14 2 views
1

J'utilise ti.MapStop pour passer l'événement click pour annotation (empêcher de pop-up)

Je veux faire quelque chose lorsque l'annotation de clic de l'utilisateur.

//make mapview 
    var mapView = Map.createView({ 
     mapType:Map.NORMAL_TYPE, 
    }); 

//make anotation 
    annot= Map.createAnnotation({ 
      latitude: myLatitude 
      longitude: myLongitude 
      title: myTitle 
      width:'100dp', 
      height:'100dp' 
    }); 

// add annotation 
    mapView.addAnnotation(annot); 

//handle the annotation click 
    mapView.addEventListener('click', function(evt) { 
     if (evt.clicksource == "pin"){ // if user click annotation 
      //do something 
      return; //I try this 
     } 
    }); 

cela fonctionne bien.

Cependant, après faire quelque chose, l'annotation contextuelle apparaît (comme comportement par défaut)

Je veux arrêter la fenêtre d'annotation.

1) J'essaie d'empêcher l'événement transmis à la classe d'annotation.

ou

2) annotation Arrêter de ne pas réagir l'événement click.

Comment puis-je le résoudre?

Répondre

1

Si vous voulez arrêter la fenêtre d'annotation, essayez de commenter la propriété title de annot. J'ai essayé cela et ça fonctionne bien.

//make anotation 
annot= Map.createAnnotation({ 
     latitude: 19.151201, 
     longitude: 72.938237, 
     // title: 'myTitle', 
     width:'100dp', 
     height:'100dp' 
}); 

//handle the annotation click 
mapView.addEventListener('click', function(evt) { 
    if (evt.clicksource == "pin"){ // if user click annotation 
     //do something 
     alert('Pin clicked'); 
     return; //I try this 
    } 
}); 

Et juste l'alerte est visible sans popup d'annotation.

Certains code mis à jour:

annot= Map.createAnnotation({ 
    latitude: 19.151201, 
    longitude: 72.938237, 
    title: ' ', 
    backgroundColor : 'transparent' 
}); 
// add annotation 
mapView.addAnnotation(annot); 

//handle the annotation click 
mapView.addEventListener('click', function(evt) { 
if (evt.clicksource == "pin"){ // if user click annotation 
    alert('Pin clicked'); 
    evt.annotation.title = ""; 
    // return; //I try this 
}else if (evt.clicksource == "map"){ 
    alert('map'); 
    evt.annotation.title = " "; 
} 
}); 
+0

Merci pour votre commentaire. J'ai commenté le titre, de sorte que popup ne sort pas, mais en quelque sorte «clic» événement pour mapView n'est pas viré .... – whitebear

+0

@ whitebear quel SDK utilisez-vous? – Swanand

+0

5.1.1GA et ti map 2.4.1 (iOS) – whitebear