我是编程新手,(仅 2 个月)
我正在编写一个应用程序,记录你开车时的纬度和经度,并采摘杂草。然后它会创建一个 kml 文件,以便您(农民)可以看到您去过的地方。
如果您在同一地点(相同的纬度和经度)挑选四种杂草,则输出是一个 kml 图钉,当您单击它时,它会扩展为四个;然而,这意味着农民必须点击所有的大头针才能看到多个大头针。
这是我的代码,使我的 kml
db = openOrCreateDatabase(rabbitsrv.DATABASE_NAME, SQLiteDatabase.OPEN_READWRITE, null);
cursor = db.rawQuery("SELECT * " +
" FROM " + rabbitsrv.BAG_TABLE_NAME +
" ORDER BY LATITUDE ASC;",
null);
int gmtTimestampColumnIndex = cursor.getColumnIndexOrThrow("GMTTIMESTAMP");
int latitudeColumnIndex = cursor.getColumnIndexOrThrow("LATITUDE");
int longitudeColumnIndex = cursor.getColumnIndexOrThrow("LONGITUDE");
if (cursor.moveToFirst()) {
StringBuffer fileBuf = new StringBuffer();
String beginTimestamp = null;
String endTimestamp = null;
String gmtTimestamp = null;
initFileBufk(fileBuf, initValuesMap());
do {gmtTimestamp = cursor.getString(gmtTimestampColumnIndex);
if (beginTimestamp == null) {beginTimestamp = gmtTimestamp;}
double latitude = cursor.getDouble(latitudeColumnIndex);
double longitude = cursor.getDouble(longitudeColumnIndex);
fileBuf.append("<Placemark><Point><coordinates>"+
sevenSigDigits.format(longitude)+","+sevenSigDigits.format(latitude)+
"</coordinates></Point></Placemark>\n");
} while (cursor.moveToNext());
endTimestamp = gmtTimestamp;
cursor.moveToLast();
closeFileBufk(fileBuf, beginTimestamp, endTimestamp);
String fileContents = fileBuf.toString();
Log.d(tag, fileContents);
我真正想做的是有一个 if 语句。我知道以下内容不起作用,因为我编造了.nextvalue
:
if ((cursor.lat==cursor.nextvalue.lat)&(cursor.long==cursor.nextvalue,long){
// make purple pushpin
} else {
// make yellow pushpin.
}
更好的是,如果我能数出我在同一纬度和经度上有多少杂草,并且如果有 7 个(例如)我可以制作一个带有数字 7 的旗帜。
我可以做的 kml 方面 - 这是我坚持的 sql/cursor 位。