맵에 마커를 추가하려고하는데 좌표 및 이름이 stackmob 데이터베이스에 대한 쿼리를 통해 가져 오는 중지 개체에 포함되어 있고 프로그램이 잘 실행됩니다 지도,하지만 addmarker 명령을 실행하지 않는 것처럼 보이기 때문에 addMarkers 메서드에서 for를 반복하지 않습니다. 또한 콘솔이나 LogCat에서 어떤 종류의 오류나 메시지를받지 못하고 있습니다. 문제를 해결하기 위해 아이디어가 부족합니다.stackmob 쿼리 후 마커가 표시되지 않음
public class MainActivity extends Activity {
GoogleMap map;
List<Stop> stops=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
StackMobAndroid.init(getApplicationContext(), 0, "f4e013f5-3e0f-41e2-af2f-3fc2bfa2446b");
getMarkers();
}
public void getMarkers()
{
Stop.query(Stop.class, new StackMobQuery().field(new StackMobQueryField("stop")), new StackMobQueryCallback<Stop>() {
@Override
public void success(List<Stop> result) {
addMarkers(result);
}
@Override
public void failure(StackMobException e) {
System.out.println("Fail");
}
});
}
public void addMarkers(List<Stop> stops)
{
for(int i=0;i<=stops.size();i++)
{
LatLng markerPos = new LatLng(stops.get(i).getLatitude(), stops.get(i).getLongitude());
System.out.println(markerPos);
System.out.println(stops.get(i).getName());
System.out.println(i);
map.addMarker(new MarkerOptions().title(stops.get(i).getName()).snippet("test").position(markerPos));
}
}
감사
편집 : 내가 수동에 마커를 추가하는 경우에서 onCreate 방법, 그것은지도에 올바르게 표시됩니다 말할 수 있습니다.
Edit2 : map.addmarker 주위에 try catch 문을 넣으면 오류 메시지에 "Not on the main thread"가 표시됩니다.