나는 청취자를 (setMapSurfaceListener
을 통해 SKMapSurfaceListener
개체를 전달하여) 설정 한 SKMapSurfaceView
입니다. addAnnotation
을 통해 SKMapSurfaceView
에 추가 된 특수 효과를 탭하면 청취자는 onSingleTap
이벤트가 발생하지만 onAnnotationSelected
은 표시되지 않습니다. 필자는 Skobbler의 로그에서 "맞춤 POI"에 탭이 있음을 확인합니다.이 주석은 내 주석 (특히 내 POI의 고유 ID는 내 주석에 부여한 고유 ID이므로)입니다. 하지만 onAnnotationSelected
도 아니고 onCustomPOISelected
도 내 수신기에서 호출되지 않습니다. 왜?Android 용 Skobbler SDK : SKMapSurfaceListener.onAnnotationSelected가 호출되지 않습니다.
편집 :
06-22 19:34:27.674: D/SKMaps(20852): MapRenderer----onSurfaceCreated
06-22 19:34:27.679: D/SKMaps(20852): MapRenderer---- LinInitialized = true
06-22 19:34:28.394: D/SKMaps(20852): MapRenderer----Map follower mode 0
06-22 19:34:28.394: D/SKMaps(20852): MapRenderer----onSurfaceChanged width = 1080 height= 1701
...
06-22 19:35:11.729: D/SKMaps(20852): SKMapSurfaceView----SINGLE TAP CONFIRMED 0
06-22 19:35:11.729: D/SKMaps(20852): SKMapSurfaceView----Check north indicator 4 526.0 705.0 296 64 0 64
06-22 19:35:11.729: D/SKMaps(20852): SKMapSurfaceView----notifyWithMapInfo
06-22 19:35:11.759: D/Wanderant(20852): onSingleTap
06-22 19:35:17.399: D/SKMaps(20852): SKMapSurfaceView----SINGLE TAP CONFIRMED 0
06-22 19:35:17.399: D/SKMaps(20852): SKMapSurfaceView----Check north indicator 4 532.0 720.0 296 64 0 64
06-22 19:35:17.399: D/SKMaps(20852): SKMapSurfaceView----notifyWithMapInfo
06-22 19:35:17.429: D/SKMaps(20852): SKMapSurfaceView---- Tapped custom POI id=123456
06-22 19:35:17.429: D/Wanderant(20852): onSingleTap
로 : 주석 ON
SKAnnotation annotation = new SKAnnotation();
annotation.setUniqueID(123456);
annotation.setLocation(new SKCoordinate(
13.45457,
52.51592));
annotation.setMininumZoomLevel(15);
annotation.setAnnotationType(SKAnnotation.SK_ANNOTATION_TYPE_MARKER);
mapView.addAnnotation(annotation);
mapView.setMapSurfaceListener(new SKMapSurfaceListener() {
@Override
public void onSurfaceCreated() {
}
@Override
public void onSingleTap(SKScreenPoint arg0) {
Log.d("onSingleTap");
}
@Override
public void onScreenOrientationChanged() {
}
@Override
public void onRotateMap() {
}
@Override
public void onPOIClusterSelected(SKPOICluster arg0) {
Log.d("onPOIClusterSelected");
}
@Override
public void onMapRegionChanged(SKCoordinate arg0) {
}
@Override
public void onMapPOISelected(SKMapPOI arg0) {
Log.d("onMapPOISelected");
}
@Override
public void onMapActionUp(SKScreenPoint arg0) {
}
@Override
public void onMapActionDown(SKScreenPoint arg0) {
}
@Override
public void onLongPress(SKScreenPoint arg0) {
}
@Override
public void onInternetConnectionNeeded() {
}
@Override
public void onInternationalisationCalled(int arg0) {
}
@Override
public void onDoubleTap(SKScreenPoint arg0) {
Log.d("onDoubleTap");
float zoom = mapView.getZoomLevel() + 1;
if (zoom <= SKMapSurfaceView.MINIMUM_ZOOM_LEVEL) {
mapView.setZoomSmooth(zoom, 250);
}
}
@Override
public void onCustomPOISelected(SKMapCustomPOI arg0) {
Log.d("onCustomPOISelected");
}
@Override
public void onCompassSelected() {
}
@Override
public void onAnnotationSelected(SKAnnotation annotation) {
Log.d("onAnnotationSelected");
}
@Override
public void onAnimationsFinished() {
}
@Override
public void onActionZoom() {
Log.d("onActionZoom");
}
@Override
public void onActionPan() {
Log.d("onActionPan");
}
});
내가하지 주석 어딘가에 하나 개의 탭을한다면 내가 할 다음 로그, 다음 중 하나 개를 누릅니다 : 여기 내 코드입니다 두 경우 모두 onSingleTap 콜백을 볼 수 있습니다. (Skobbler 맵 초기화 코드는 건너 뛰었지만 자습서에 따라 완료되었으므로 성공적으로 초기화되고지도가 표시됩니다.)
안녕하세요. 이 문제를 디버그하려면 더 많은 정보가 필요합니다. 탭하려고하는 주석 중 하나에 대한 코드와 콘솔에서 얻은 로그 (탭이 감지 된 위치를 나타냄)를 포함 할 수 있습니까? – Ando
코드를 포함하도록 내 원래 게시물을 수정했습니다. 감사. –