Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从SQLite数据库中读取Google地图标记的值_Java_Android_Database_Sqlite - Fatal编程技术网

Java 从SQLite数据库中读取Google地图标记的值

Java 从SQLite数据库中读取Google地图标记的值,java,android,database,sqlite,Java,Android,Database,Sqlite,我正在尝试从预先制作的SQLite数据库中读取位置(纬度、经度)值和标题。我遇到的问题是,它似乎在地图上显示了一个标记,但与数据库中的值无关——几乎就像它们被错误地读取一样 我的MonumentsDatabase.java类(我在其中处理数据库): 也许我遗漏了什么,但是看起来你的getLat()方法实际上并没有在任何地方设置_lat的值(它返回的值)?对于getLong()等类似 如果这不是问题所在,您是否尝试过调试和单步执行代码?这将使您更好地了解达夫值的来源 抱歉,我本想添加此作为评论,但

我正在尝试从预先制作的SQLite数据库中读取位置(纬度、经度)值和标题。我遇到的问题是,它似乎在地图上显示了一个标记,但与数据库中的值无关——几乎就像它们被错误地读取一样

我的MonumentsDatabase.java类(我在其中处理数据库):


也许我遗漏了什么,但是看起来你的getLat()方法实际上并没有在任何地方设置_lat的值(它返回的值)?对于getLong()等类似

如果这不是问题所在,您是否尝试过调试和单步执行代码?这将使您更好地了解达夫值的来源


抱歉,我本想添加此作为评论,但没有足够的代表。

将数据元组(lat、lng、描述等)分开的原因是什么?我把它放在一个有3列的表中(为了简洁起见,删去其余部分):


在这种情况下,您永远不会得到像
11,11;22.22; 位置B,显然在您的案例中发生了什么,纬度和经度没有被检索,因为方法
getLat()
getLng()
从光标检索它是错误的

因为您只从数据库中选择了一列,所以必须获取列索引0,而不是像在
getLat()
getLng()
方法中那样获取1或2

在这些方法中,执行以下操作:

// getLat() method
_lat = latQuery.getDouble(0); 

// getLng() method
_lng = lngQuery.getDouble(0);

请您记录sLat和sLng的值,并将其作为更新发布到您的帖子中,以便我们查看这些值是否被正确检索。当然!它用输出进行了更新:)我只能看到纬度,请将它粘贴到
mDB.get(I).getLng()
行:
Log.I(“主活动”,“纬度和经度”+sLat+“-”+sLng)之后
并发布新日志。抱歉,我不知道它没有连接,现在一切都结束了!:)添加这个
Log.i(“MainActivity”,“纬度和经度:“+sLat+”-“+sLng+”-标题:“+mDB.get(i).getTitle())
mDB.get(i).getLng()
之后,因此我们可能会以正确的顺序查看值,然后请发布更新。我现在来看看,我已经通过日志发送了数据库,它打印得很好,所以可能这就是原因!
public class MainActivity extends FragmentActivity {

private GoogleMap map;
Intent data;    
MonumentsDatabase monDatabase;
ArrayList<MonumentsDatabase> mDatabase;
int _id;
double _lat;
double _lng;
double sLat;
double sLng;
String _title;
String titles;
double lats;
double lngs;
LatLng markerPosition;
int i;
private Marker bigBen;
private Marker mainMarker;
private Marker parliamentSQ;
private Marker parliament;
private Marker random;


static final LatLng PARLIAMENT = new LatLng(51.499776600000000000, -0.125173099999983600);
//static final LatLng MARKERS = new LatLng(getLatitude(), getLongitude());
static final LatLng PARLIAMENTSQ = new LatLng(51.5006, -0.1267);
static final LatLng RANDOM = new LatLng(51.5019, -0.1257);
LocationManager locationManager;
Context context = this;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    map=((SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map)).getMap();

    map.setOnInfoWindowClickListener(new OnInfoWindowClickListener() {
        @Override
        public void onInfoWindowClick(Marker marker) {
           Intent data = new Intent(MainActivity.this, DisplayData.class);
           startActivity(data);

        }
    });

    ArrayList<MonumentsDatabase> mDB = createDatabase();


    for(i = 0; i < mDB.size(); i++) {
        //Get position of what the DB is and get the latitude and longitude
        sLat = mDB.get(i).getLat();
        sLng = mDB.get(i).getLng();
        markerPosition = new LatLng(sLat, sLng);
        map.addMarker(new MarkerOptions()
            .position(markerPosition)
            .title(mDB.get(i).getTitle())
            .snippet("Click for more info.")
            .icon(BitmapDescriptorFactory.fromResource(R.drawable.custom_marker))); 
    }





    locationManager = (LocationManager) getSystemService( Context.LOCATION_SERVICE );

    if ( !locationManager.isProviderEnabled( LocationManager.GPS_PROVIDER ) ) {
        disabledGPS();
    }       

    map.setMyLocationEnabled(true);
}




private void disabledGPS() {
    final AlertDialog.Builder gpsDisabled = new AlertDialog.Builder(this);
    gpsDisabled.setMessage("This app requires GPS to be enabled. Do you wish to continue?")
        .setCancelable(false)
        .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                startActivity(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS));
            }
        })
        .setNegativeButton("No", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                dialog.cancel();
            }
        });
    AlertDialog mainAlert = gpsDisabled.create();
    mainAlert.show();
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

public ArrayList<MonumentsDatabase> createDatabase() {
    monDatabase = new MonumentsDatabase(this);
    try {   
        monDatabase.createDatabase();
    } catch (IOException ioe) {
        throw new Error("Unable to create database");
    }
    try {
        monDatabase.openDatabase();
    }catch(SQLException sqle){ 
        throw sqle;
    }

    mDatabase = new ArrayList<MonumentsDatabase>();
    monDatabase.setTitle(titles);
    monDatabase.setLat(lats);
    monDatabase.setLng(lngs);
    titles = monDatabase.getTitle();
    lats = monDatabase.getLat();
    lngs = monDatabase.getLng();
    mDatabase.add(monDatabase);

    return mDatabase;
}
02-24 12:55:11.691: V/getTitle() - TITLE(18411): Row: 0, Values: Big Ben
02-24 12:55:11.692: V/getTitle() - TITLE(18411): Row: 1, Values: Swansea Castle
02-24 12:55:11.693: V/getTitle() - TITLE(18411): Row: 2, Values: Cardiff Castle
02-24 12:55:11.694: V/getTitle() - TITLE(18411): Row: 3, Values: Mumbles Lighthouse
02-24 12:55:11.695: V/getTitle() - TITLE(18411): Row: 4, Values: Sketty Hall
02-24 12:55:11.695: V/getTitle() - TITLE(18411): Row: 5, Values: St Mary's Church, Swansea
02-24 12:55:11.696: V/getTitle() - TITLE(18411): Row: 6, Values: Loughor
02-24 12:55:11.696: V/getTitle() - TITLE(18411): Row: 7, Values: Oystermouth Castle
02-24 12:55:11.696: V/getTitle() - TITLE(18411): Row: 8, Values: Oxwich Castle
02-24 12:55:11.696: V/getTitle() - TITLE(18411): Row: 9, Values: Penlle'r Castell
02-24 12:55:11.696: V/getTitle() - TITLE(18411): Row: 10, Values: Pennard Castle
02-24 12:55:11.698: V/getTitle() - TITLE(18411): Row: 11, Values: The Palace Theatre
02-24 12:55:11.699: V/getTitle() - TITLE(18411): Row: 12, Values: Morris Castle
02-24 12:55:11.699: V/getTitle() - TITLE(18411): Row: 13, Values: Castle Cinema
02-24 12:55:11.699: V/getTitle() - TITLE(18411): Row: 14, Values: Port Eynon
02-24 12:55:11.700: V/getTitle() - TITLE(18411): Row: 15, Values: Penrice Castle
02-24 12:55:11.700: V/getTitle() - TITLE(18411): Row: 16, Values: Weobley Castle
02-24 12:55:11.700: V/getTitle() - TITLE(18411): Row: 17, Values: St Fagans Castle
02-24 12:55:11.700: V/getTitle() - TITLE(18411): Row: 18, Values: Gregynog Hall
02-24 12:55:11.700: V/getTitle() - TITLE(18411): Row: 19, Values: Margam Castle
02-24 12:55:11.702: V/getLat() - LATITUDE(18411): Row: 0, Values: 51.5008
02-24 12:55:11.703: V/getLat() - LATITUDE(18411): Row: 1, Values: 51.6203
02-24 12:55:11.703: V/getLat() - LATITUDE(18411): Row: 2, Values: 51.4824
02-24 12:55:11.703: V/getLat() - LATITUDE(18411): Row: 3, Values: 51.5671
02-24 12:55:11.703: V/getLat() - LATITUDE(18411): Row: 4, Values: 51.6131
02-24 12:55:11.704: V/getLat() - LATITUDE(18411): Row: 5, Values: 51.619
02-24 12:55:11.704: V/getLat() - LATITUDE(18411): Row: 6, Values: 51.6626
02-24 12:55:11.704: V/getLat() - LATITUDE(18411): Row: 7, Values: 51.5765
02-24 12:55:11.704: V/getLat() - LATITUDE(18411): Row: 8, Values: 51.5546
02-24 12:55:11.705: V/getLat() - LATITUDE(18411): Row: 9, Values: 51.7691
02-24 12:55:11.705: V/getLat() - LATITUDE(18411): Row: 10, Values: 51.5766
02-24 12:55:11.705: V/getLat() - LATITUDE(18411): Row: 11, Values: 51.3739
02-24 12:55:11.705: V/getLat() - LATITUDE(18411): Row: 12, Values: 51.391
02-24 12:55:11.705: V/getLat() - LATITUDE(18411): Row: 13, Values: 51.3715
02-24 12:55:11.706: V/getLat() - LATITUDE(18411): Row: 14, Values: 51.5453
02-24 12:55:11.706: V/getLat() - LATITUDE(18411): Row: 15, Values: 51.5752
02-24 12:55:11.706: V/getLat() - LATITUDE(18411): Row: 16, Values: 51.6128
02-24 12:55:11.706: V/getLat() - LATITUDE(18411): Row: 17, Values: 51.4859
02-24 12:55:11.707: V/getLat() - LATITUDE(18411): Row: 18, Values: 52.3403
02-24 12:55:11.707: V/getLat() - LATITUDE(18411): Row: 19, Values: 51.5628
02-24 12:58:56.017: V/getLng() - LONGITUDE(18567): Row: 0, Values: -0.1247
02-24 12:58:56.018: V/getLng() - LONGITUDE(18567): Row: 1, Values: 3.9412
02-24 12:58:56.018: V/getLng() - LONGITUDE(18567): Row: 2, Values: 3.1811
02-24 12:58:56.018: V/getLng() - LONGITUDE(18567): Row: 3, Values: 3.9723
02-24 12:58:56.018: V/getLng() - LONGITUDE(18567): Row: 4, Values: 3.9883
02-24 12:58:56.020: V/getLng() - LONGITUDE(18567): Row: 5, Values: 3.943
02-24 12:58:56.020: V/getLng() - LONGITUDE(18567): Row: 6, Values: 4.06461
02-24 12:58:56.020: V/getLng() - LONGITUDE(18567): Row: 7, Values: 4.00297
02-24 12:58:56.020: V/getLng() - LONGITUDE(18567): Row: 8, Values: 4.16791
02-24 12:58:56.021: V/getLng() - LONGITUDE(18567): Row: 9, Values: 3.9356
02-24 12:58:56.024: V/getLng() - LONGITUDE(18567): Row: 10, Values: 4.1023
02-24 12:58:56.025: V/getLng() - LONGITUDE(18567): Row: 11, Values: 3.5628
02-24 12:58:56.026: V/getLng() - LONGITUDE(18567): Row: 12, Values: 3.562
02-24 12:58:56.027: V/getLng() - LONGITUDE(18567): Row: 13, Values: 3.5629
02-24 12:58:56.027: V/getLng() - LONGITUDE(18567): Row: 14, Values: 4.215
02-24 12:58:56.027: V/getLng() - LONGITUDE(18567): Row: 15, Values: 4.1703
02-24 12:58:56.027: V/getLng() - LONGITUDE(18567): Row: 16, Values: 4.1994
02-24 12:58:56.028: V/getLng() - LONGITUDE(18567): Row: 17, Values: 3.2677
02-24 12:58:56.028: V/getLng() - LONGITUDE(18567): Row: 18, Values: 3.2108
02-24 12:58:56.029: V/getLng() - LONGITUDE(18567): Row: 19, Values: 3.7254
Latitude | Longitude | Description
11.11    | 11.11     | Place A
22.22    | 22.22     | place B
// getLat() method
_lat = latQuery.getDouble(0); 

// getLng() method
_lng = lngQuery.getDouble(0);