|
|
|
Android - สอบถามเรื่องการ Query ข้อมูลจาก SQLite ในการหาค่าของสถานที่ใกล้เคียงเราครับ |
|
|
|
|
|
|
|
Code (Android-Java)
// Show graph Data
public ArrayList<HashMap<String, String>> SelectGraphnearmeData(String lat,
String lng) {
// TODO Auto-generated method stub
try {
ArrayList<HashMap<String, String>> MyArrList = new ArrayList<HashMap<String, String>>();
HashMap<String, String> map;
SQLiteDatabase db;
db = this.getReadableDatabase(); // Read Data
Cursor cursor = db
.rawQuery(
"SELECT *, ( 3959 * acos( cos( radians('"
+ lat
+ "') ) * cos( radians( a.latitude ) ) * cos( radians( a.longitude ) - radians('"
+ lng
+ "') ) + sin( radians('"
+ lat
+ "') ) * sin( radians( a.latitude ) ) ) ) AS distanceFROM staion AS a HAVING distance < 1000 ORDER BY distance",
null);
if (cursor != null) {
if (cursor.moveToFirst()) {
do {
map = new HashMap<String, String>();
map.put("id", cursor.getString(0));
map.put("stationid", cursor.getString(1));
map.put("gaslog", cursor.getString(5));
map.put("protolog", cursor.getString(6));
map.put("ipelog", cursor.getString(7));
map.put("log_date_length", cursor.getString(20));
map.put("log_date", cursor.getString(21));
MyArrList.add(map);
} while (cursor.moveToNext());
}
}
cursor.close();
db.close();
return MyArrList;
} catch (Exception e) {
return null;
}
}
ตอนนี้ผม query ไปแล้ว แต่มันขึ้นว่า no such func acos พอจะมีวิธีไหนทำได้บ้างครับ query เอาสถานที่ใกล้เคียงเรา
ที่ผมต้องใช้ sqllite เพราะว่า app เป็นออฟไล ถ้าเป็นออนไล ตอนนี้ทำสามารถทำได้ครับ
Tag : Mobile, Android
|
|
|
|
|
|
Date :
2014-05-27 13:01:01 |
By :
kaisiamza |
View :
1083 |
Reply :
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Query ที่ใช้มันถูกหรือเปล่านี่แหละครับ คือปัญหา ถ้ามันถูกก็สามารถเรียกได้ครับ
|
|
|
|
|
Date :
2014-05-27 17:12:43 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถูกครับ ผมลองเอา sql ไป รันใน mysql ก็ query ได้ตามปกติครับ ปัญหาคือมันไม่ได้บอกว่า query ผิดครับ แต่มันเหมือนประมาณว่า
ไม่มี ฟั่งชั่น acos อยู่ใน sqllite อะครับผม พอจะมีวิธีไหน ที่จะทำแบบนี้ไม่บ้างครับถ้าใช้ sqllite ขอบคุณครับ
|
|
|
|
|
Date :
2014-05-27 18:38:25 |
By :
kaisiamza |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตาม error เลยครับ SQLite มันไม่มีฟังค์ชันที่ซัพพอร์ตพวก sin cos tan นี่ครับ
ถ้าจะ Query จริงๆ คงต้องดึงพิกัด แล้วมาคำนวณในฝั่งโค๊ด Java เอาครับ
stackoverflow มีเคสนี้เยอะนะครับ ลองหาดูครับ น่าจะพอช่วยได้
|
|
|
|
|
Date :
2014-05-28 09:52:33 |
By :
devahoy |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คาดว่าบน SQLite ไม่มี function นี้ครับ
|
|
|
|
|
Date :
2014-05-28 09:58:19 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ครับผม ขอบคุณครับ
|
|
|
|
|
Date :
2014-05-28 14:47:50 |
By :
kaisiamza |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|