Java 无法从SqLite获取坐标以映射活动
我试图从数据库中获取坐标,以便在地图活动中进行标记。但我总是得到一个空指针异常 这是我的数据库:Java 无法从SqLite获取坐标以映射活动,java,sqlite,google-maps,android-fragments,google-maps-markers,Java,Sqlite,Google Maps,Android Fragments,Google Maps Markers,我试图从数据库中获取坐标,以便在地图活动中进行标记。但我总是得到一个空指针异常 这是我的数据库: String query = "CREATE TABLE "+TABLE_NAME+"("+ COLUMN_ID+ " INTEGER PRIMARY KEY AUTOINCREMENT, "+ COLUMN_LAT+ " REAL, "+
String query = "CREATE TABLE "+TABLE_NAME+"("+
COLUMN_ID+ " INTEGER PRIMARY KEY AUTOINCREMENT, "+
COLUMN_LAT+ " REAL, "+
COLUMN_LONG+" REAL, "+
COLUMN_NUM+ " INTEGER "+
");";
这就是我调用函数以在我的MapActivity中获取数据库的lat和long值的方式:
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
mMap.setMyLocationEnabled(true);
mMap.getUiSettings().setMyLocationButtonEnabled(true);
double[] dblat = new double[5];
//this is where I get NullPoint Exception
dblat=dbHandler.Markerslat();
double []dblong = new double[5];
dblong = dbHandler.Markerslong();
for(int j=0;j<dblat.length;j++) {
LatLng latLng = new LatLng( dblat[j], dblong[j] );
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position( latLng );
markerOptions.title( "Pothole" );
markerOptions.icon(BitmapDescriptorFactory.fromResource(R.drawable.potholesmall));
mMap.addMarker( markerOptions );
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 10));
mMap.animateCamera(CameraUpdateFactory.zoomTo(15));
}
}
public double [] Markerslat(){
SQLiteDatabase db = getWritableDatabase();
Cursor cursor = db.rawQuery("SELECT * FROM "+ TABLE_NAME + ";",null);
cursor.moveToFirst();
int k = cursor.getCount();
double []dlatitude= new double[k];
for(int i=0;i<k;i++){
dlatitude[i]=cursor.getDouble(1);
Log.i(TAG, "Entered");
cursor.moveToNext();
}
db.close();
return dlatitude;
}
public double[] Markerslong(){
SQLiteDatabase db = getWritableDatabase();
Cursor cursor = db.rawQuery("SELECT longitude FROM "+ TABLE_NAME +";",null);
cursor.moveToFirst();
int k = cursor.getCount();
double []dlongitude= new double[k];
cursor.moveToFirst();
for(int i=0;i<k;i++){
dlongitude[i]=cursor.getDouble(2);
cursor.moveToNext();
}
db.close();
return dlongitude;
}
public void onMapReady(谷歌地图谷歌地图){
mMap=谷歌地图;
mMap.setMyLocationEnabled(真);
mMap.getUiSettings().setMyLocationButtonEnabled(true);
double[]dblat=新的double[5];
//这就是我得到NullPoint异常的地方
dblat=dbHandler.Markerslat();
double[]dblong=新的双精度[5];
dblong=dbHandler.Markerslong();
对于(int j=0;j