我想從我的數據庫中獲取shop_name的緯度和經度,所以我可以使用它從我的位置獲取方向。如何通過shop_name獲取經度和緯度並將其顯示爲地圖?
這裏是我的地圖活動:
public class SearchLocation extends MapActivity {
private MapView mapView;
private LocationManager locManager;
private LocationListener locListener;
location_dao location_dao = new location_dao();
String shopname = "0", address = "0", phone_number = "0";
public CharSequence lat = "0", lng = "0", lat2 = "0", lng2 = "0";
LocationManager mlocManager;
LocationListener mlocListener;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.map_shoprepair);
final ActionBar actionBar = (ActionBar) findViewById(R.id.actionbar);
actionBar.setTitle(getString(R.string.app_name));
actionBar.setHomeAction(new IntentAction(this, new Intent(this,
Home_Activity.class), R.drawable.home));
initMap();
initLocationManager();
}
private void initMap() {
mapView = (MapView) findViewById(R.id.map_view);
mapView.setBuiltInZoomControls(true);
mapView.displayZoomControls(true);
mapView.getController().setZoom(15);
mapView.setSatellite(false);
}
private void initLocationManager() {
locManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locListener = new LocationListener() {
//method ini akan dijalankan apabila koordinat GPS berubah
public void onLocationChanged(Location newLocation) {
tampilkanPosisikeMap(newLocation);
}
public void onProviderDisabled(String arg0) {
}
public void onProviderEnabled(String arg0) {
}
public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
}
};
locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0,
locListener);
}
protected void tampilkanPosisikeMap(Location newLocation) {
List overlays = mapView.getOverlays();
// first remove old overlay
if (overlays.size() > 0) {
for (Iterator iterator = overlays.iterator(); iterator.hasNext();) {
iterator.next();
iterator.remove();
}
}
// transform the location to a geopoint
GeoPoint geopoint = new GeoPoint(
(int) (newLocation.getLatitude() * 1E6), (int) (newLocation.getLongitude() * 1E6));
// initialize icon
Drawable icon = getResources().getDrawable(R.drawable.marker1);
icon.setBounds(0, 0, icon.getIntrinsicWidth(), icon.getIntrinsicHeight());
// create my overlay and show it
mapsOverlay overlay = new mapsOverlay(icon);
OverlayItem item = new OverlayItem(geopoint, "My Location", null);
overlay.addItem(item);
mapView.getOverlays().add(overlay);
// move to location
mapView.getController().animateTo(geopoint);
// redraw map
mapView.postInvalidate();
}
public class MyLocationListener implements LocationListener {
@Override
public void onLocationChanged(final Location loc) {
SearchLocation.this.parsingGetServerLocationData(shopname);
if (lat != "0" && lng != "0") {
loc.getLatitude();
loc.getLongitude();
mlocManager.removeUpdates(this);
lat2 = String.valueOf(loc.getLatitude());
lng2 = String.valueOf(loc.getLongitude());
Location bLocation = new Location("reverseGeocoded");
bLocation.setLatitude(Double.parseDouble((String) lat2));
bLocation.setLongitude(Double.parseDouble((String) lng2));
Location aLocation = new Location("reverseGeocoded");
aLocation.setLatitude(Double.parseDouble((String) lat));
aLocation.setLongitude(Double.parseDouble((String) lng));
Location myLocation = LocationHelper
.getLastLocation(getBaseContext());
int distance = (int) aLocation.distanceTo(bLocation);
// handler.sendEmptyMessage(0);
// Toast.makeText(searchLocation.this, "Your distance: " +
// distance + " Meter", Toast.LENGTH_SHORT).show();
Uri uri = Uri.parse("http://maps.google.com/maps?f=d&saddr="
+ myLocation.getLatitude() + "%20"
+ myLocation.getLongitude() + "&daddr=" + lat + "%20"
+ lng + "&hl=en");
Intent it = new Intent(Intent.ACTION_VIEW, uri);
startActivity(it);
lat = "0";
lng = "0";
} else {
// handler.sendEmptyMessage(0);
// Toast.makeText(searchLocation.this, "no data found",
// Toast.LENGTH_LONG).show();
}
}
public void onProviderDisabled(String provider) {
Toast.makeText(getApplicationContext(),
"Gps Disabled, Switch to Network", Toast.LENGTH_SHORT)
.show();
}
@Override
public void onProviderEnabled(String provider) {
Toast.makeText(getApplicationContext(), "Gps Enabled",
Toast.LENGTH_SHORT).show();
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
}
public void parsingGetServerLocationData(String shop_name) {
try {
JSONArray jArray = new JSONArray(
location_dao.getServerLocationData(shop_name));
for (int i = 0; i < jArray.length(); i++) {
JSONObject json_data = jArray.getJSONObject(i);
// Get an output to the screen
shopname = json_data.getString("SHOP_NAME");
lat = json_data.getString("LATITUDE");
lng = json_data.getString("LONGITUDE");
Log.e("log_tag",
"parsingGetServerLocationData" + shopname.toString());
}
} catch (JSONException e) {
// TODO: handle exception
Log.e("log_tag", "Error parsing data " + e.toString());
shopname = "0";
lat = "0";
lng = "0";
}
}
public void parsingGetServerDetailLocationData(String shop_name)
{
try{
JSONArray jArray = new JSONArray(location_dao.getServerDetailLocationData(shop_name));
for(int i=0;i<jArray.length();i++){
JSONObject json_data = jArray.getJSONObject(i);
//Get an output to the screen
shopname = json_data.getString("SHOP_NAME");
address = json_data.getString("ADDRESS");
phone_number = json_data.getString("PHONE_NUMBER");
Log.e("log_tag", "parsingGetServerDetailLocationData: "+shopname.toString());
}
}catch(JSONException e){
Log.e("log_tag", "Error parsing data "+e.toString());
shopname = "0";
address = "0";
phone_number = "0";
}
}
@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}}
,這裏是我的代碼來調用地圖的活動:
,這裏是我的logcat:
10-02 22:40:32.859:E/AndroidRun時間(4375):android.view.WindowManager $ BadTokenException:無法添加窗口 - 令牌[email protected]無效;你的活動正在運行? 10-02 22:40:32.859:E/AndroidRuntime(4375):在android.view.ViewRoot.setView(ViewRoot.java:532) 10-02 22:40:32.859:E/AndroidRuntime(4375):在android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177) 10-02 22:40:32.859:E/AndroidRuntime(4375):在android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91) 10-02 22:40:32.859:E/AndroidRuntime(4375):在android.view.Window $ LocalWindowManager.addView(Window.java:424) 10-02 22:40:32.859:E/AndroidRuntime(4375):在機器人。 app.Dialog.show(Dialog.java:241) 10-02 22:40:32.859:E/AndroidRuntime(4375):at com.wilis.hellotabwidget.Tab_Shop_Repair_ListView_Activity $ 1.gotResult(Tab_Shop_Repair_ListView_Activity.java:75) 10- 02 22:40:32.859:E/AndroidRuntime(4375):在com.wilis.dao.bike_shop_dao $ 1.gotResult (bike_shop_dao.java:84) 10-02 22:40:32.859:E/AndroidRuntime(4375):在com.wilis.connections.ConnectionHandler.handleMessage(ConnectionHandler.java:68) 10-02 22:40:32.859 :E/AndroidRuntime(4375):在android.os.Handler.dispatchMessage(Handler.java:99) 10-02 22:40:32.859:E/AndroidRuntime(4375):在android.os.Looper.loop(活套的.java:130) 10-02 22:40:32.859:E/AndroidRuntime(4375):在android.app.ActivityThread.main(ActivityThread.java:3687) 10-02 22:40:32.859:E/AndroidRuntime (4375):在java.lang.reflect.Method.invokeNative(本機方法) 10-02 22:40:32.859:E/AndroidRuntime(4375):在java.lang.reflect.Method.invoke(Method.java: 507) 10-02 22:40:32.859:E/AndroidRuntime(4375):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:867) 10-02 22:40:32.859:E/AndroidRuntime(4375):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625) 10-02 22:40:32.859:E/AndroidRuntime( 4375):在dalvik.system.NativeStart.main(本機方法) 10-02 22:41:44.609:E/HttpResponse對象(4493):{ 「結果」:1, 「數據」:[{ 「0」:」 Toko Sepeda Alam Baru「,」shop_name「:」Toko Sepeda Alam Baru「,」1「:」Jl。 Malioboro No. 151「,」地址「:」Jl。 Malioboro No. 151「,」2「:」0274514903「,」phone_number「:」0274514903「},{」0「:」Toko Sepeda Tri Jaya「,」shop_name「:」Toko Sepeda Tri Jaya「,」1「 「JL。 Bridjend。 Katamso 210 -212「,」address「:」Jl。 Bridjend。 Katamso 210 -212「,」2「:」0274375180「,」phone_number「:」0274375180「},{」0「:」Sinar Makmur「,」shop_name「:」Sinar Makmur「,」1「:」Jl。 Brigjen Katamso 92B「,」address「:」Jl。 Brigjen Katamso 92B「,」2「:」0274378352「,」phone_number「:」0274378352「},{」0「:」Orion「,」shop_name「:」Orion「,」1「:」Jl Brigjen Katamso 56「 「地址」:「Jl Brigjen Katamso 56」,「2」:「0274374986」,「phone_number」:「0274374986」},{「0」:「Pasar Sepeda PPSY」,「shop_name」:「Pasar Sepeda PPSY」 1 「:」 JL。 Menteri Supeno,Sorosutan「,」地址「:」Jl。 Menteri Supeno,Sorosutan「,」2「:」 - 「,」phone_number「:」 - 「},{」0「:」Toko Sepeda Adi Mitra「,」shop_name「:」Toko Sepeda Adi Mitra「,」1「 「JL。 Mayjen Sutoyo 09「,」地址「:」Jl。 Mayjen Sutoyo 09「,」2「:」0274375199「,」phone_number「:」0274375199「},{」0「:」Pasar Sepeda GAPPSTA「,」shop_name「:」Pasar Sepeda GAPPSTA「,」1「:」Jl。公噸。 Haryono 「 」地址「:」 JL。公噸。 Haryono「,」2「:」 - 「,」phone_number「:」 - 「},{」0「:」Pasar Sepeda Terban「,」shop_name「:」Pasar Sepeda Terban「,」1「:」Jl。C. Simanjuntak 「」 地址 「:」 JL。 C. Simanjuntak 「」 2 「:」 - 「」 PHONE_NUMBER 「:」 - 「},{」 0 「:」 自行車商店馬可波羅 「」 shop_name 「:」 自行車商店馬可波羅 「」 1 「:」 JL。 Sosrowijayan號11 「」 地址 「:」 JL。 Sosrowijayan號11 「」 2 「:」 0274587636 「」 PHONE_NUMBER 「:」 0274587636 「},{」 0 「:」 自行車商店江左再也 「」 shop_name 「:」 自行車商店江左再也 「」 1 「:」 JL。 CRC。達蘭第72號 「」 地址 「:」 JL。 CRC。達蘭第72號 「」 2 「:」 0274515605 「」 PHONE_NUMBER 「:」 0274515605 「},{」 0 「:」 商店自行車聯合 「」 shop_name 「:」 商店自行車聯合 「」 1 「:」 JL。 P.蒂博尼哥羅42 「」 地址 「:」 JL。 P.蒂博尼哥羅42 「」 2 「:」 0274518375 「」 PHONE_NUMBER 「:」 0274518375 「},{」 0 「:」 自行車商店塔曼紗麗英達 「」 shop_name 「:」 自行車商店塔曼紗麗英達 「」 1 「:」 哈希姆Jl.Wachid 129 「」 地址 「:」 哈希姆Jl.Wachid 129 「」 2 「:」 - 「」 PHONE_NUMBER 「:」 - 「},{」 0 「:」 問候自行車商店」, 「shop_name」: 「問候自行車商店」, 「1」: 「Jl.Wachid Hasyim 19」, 「地址」: 「Jl.Wachid Hasyim 19」, 「2」: 「0274374913」, 「PHONE_NUMBER」: 「0274374913」} { 「0」: 「AB自行車」, 「shop_name」: 「AB自行車」, 「1」:「JL。居屋Cokroaminoto 45 「」 地址 「:」 JL。 HOS Cokroaminoto 45 「」 2 「:」 0274618027 「」 PHONE_NUMBER 「:」 0274618027 「},{」 0 「:」 印再也薩克蒂 「」 shop_name 「:」 印再也薩克蒂 「」 1 「:」 JL。何Tjokroaminoto號157 B 「」 地址 「:」 JL。何Tjokroaminoto號157 B 「」 2 「:」 0274620188 「」 PHONE_NUMBER 「:」 0274620188 「},{」 0 「:」 Rodalink自行車商店 「」 shop_name 「:」 Rodalink自行車商店 「」 1 「:」 JL。 Laskda距離Adisucipto公里6號155C 「」 地址 「:」 JL。 Laskda距離Adisucipto公里6號155C 「」 2 「:」 0274487229 「」 PHONE_NUMBER 「:」 0274487229 「},{」 0 「:」 佩德羅坑店(中心) 「」 shop_name 「:」 佩德羅坑店(中心) 「」 1「 「惹蘭。 Kebon阿貢4.6公里洛杉磯佳能,Godean「」地址‘:’惹蘭。 Kebon阿貢4.6公里洛佳能,Godean 「」 2 「:」 0816972823 「」 PHONE_NUMBER 「:」 0816972823 「},{」 0 「:」 佩德羅坑店(分公司) 「」 shop_name 「:」 佩德羅坑店(分公司) 「」 1 「:」 Godean公里9,Godean 「」 地址 「:」 Godean公里9,Godean 「」 2 「:」 02747171665 「」 PHONE_NUMBER 「:」 02747171665 「},{」 0 「:」 佩德羅坑店(分公司) 「」 shop_name 「:」 佩德羅坑店(分公司) 「」 1 「:」 惹。北緣(環線),Karangnongko,Maguwo,DEPOK,Sleman 「」 地址 「:」 惹蘭。北環(環形路),Karangnongko,Maguwo,DEPOK,Sleman 「」 2 「:」 085 729 075 277 「」 PHONE_NUMBER 「:」 085 729 075 277 「},{」 0 「:」 Nurhayati自行車 「」 shop_name 「:」 Nurhayati自行車「 , 「1」: 「高速公路Cebongan Sleman」, 「地址」: 「高速公路Cebongan Sleman」, 「2」: 「 - 」, 「PHONE_NUMBER」: 「 - 」},{ 「0」: 「愛自行車」, 「shop_name」: 「愛自行車」, 「1」: 「Gandok,剛suryo 16,Condongcatur,DEPOK,Sleman」, 「地址」: 「Gandok,剛suryo 16,Condongcatur,DEPOK,Sleman」,「 2 「:」 085 743 919 166 「」 PHONE_NUMBER 「:」 085 743 919 166「}]} 10-02 22:41:50 749:d/PhoneWindow(4493):無法保存室友查看具有焦點因爲聚焦的視圖com.android。 [email protected]沒有ID 10-02 22:41:52 549:E/ZoomButtonsController(4493):不能使變焦控制器可見如果所有者視圖未附加到窗口 10-02 22:41:52 609:I/MapActivity(4493):處理網絡變更通知:連接
這是從我的數據庫獲取所有數據,但我想說明當我點擊只有一個SHOPNAME。
10-02 22:41:44.609: E/HttpResponse(4493): {"result":1,"data":[{"0":"Toko Sepeda Alam Baru","shop_name":"Toko Sepeda Alam Baru","1":"Jl. Malioboro No. 151","address":"Jl. Malioboro No. 151","2":"0274514903","phone_number":"0274514903"},{"0":"Toko Sepeda Tri Jaya","shop_name":"Toko Sepeda Tri Jaya","1":"Jl. Bridjend. Katamso 210 -212","address":"Jl. Bridjend. Katamso 210 -212","2":"0274375180","phone_number":"0274375180"},{"0":"Sinar Makmur","shop_name":"Sinar Makmur","1":"Jl. Brigjen Katamso 92B","address":"Jl. Brigjen Katamso 92B","2":"0274378352","phone_number":"0274378352"},{"0":"Orion","shop_name":"Orion","1":"Jl Brigjen Katamso 56","address":"Jl Brigjen Katamso 56","2":"0274374986","phone_number":"0274374986"},{"0":"Pasar Sepeda PPSY","shop_name":"Pasar Sepeda PPSY","1":"Jl. Menteri Supeno, Sorosutan","address":"Jl. Menteri Supeno, Sorosutan","2":"-","phone_number":"-"},{"0":"Toko Sepeda Adi Mitra","shop_name":"Toko Sepeda Adi Mitra","1":"Jl. Mayjen Sutoyo 09","address":"Jl. Mayjen Sutoyo 09","2":"0274375199","phone_number":"0274375199"},{"0":"Pasar Sepeda GAPPSTA","shop_name":"Pasar Sepeda GAPPSTA","1":"Jl. MT. Haryono","address":"Jl. MT. Haryono","2":"-","phone_number":"-"},{"0":"Pasar Sepeda Terban","shop_name":"Pasar Sepeda Terban","1":"Jl. C. Simanjuntak","address":"Jl. C. Simanjuntak","2":"-","phone_number":"-"},{"0":"Toko Sepeda Marcopolo","shop_name":"Toko Sepeda Marcopolo","1":"Jl. Sosrowijayan No. 11","address":"Jl. Sosrowijayan No. 11","2":"0274587636","phone_number":"0274587636"},{"0":"Toko Sepeda Esa Jaya","shop_name":"Toko Sepeda Esa Jaya","1":"Jl. KHA. Dahlan No 72","address":"Jl. KHA. Dahlan No 72","2":"0274515605","phone_number":"0274515605"},{"0":"Toko Sepeda United","shop_name":"Toko Sepeda United","1":"Jl. P. Diponegoro 42","address":"Jl. P. Diponegoro 42","2":"0274518375","phone_number":"0274518375"},{"0":"Toko Sepeda Taman Sari Indah","shop_name":"Toko Sepeda Taman Sari Indah","1":"Jl.Wachid Hasyim 129","address":"Jl.Wachid Hasyim 129","2":"-","phone_number":"-"},{"0":"Toko Sepeda Salam","shop_name":"Toko Sepeda Salam","1":"Jl.Wachid Hasyim 19","address":"Jl.Wachid Hasyim 19","2":"0274374913","phone_number":"0274374913"},{"0":"AB Bike","shop_name":"AB Bike","1":"Jl. HOS Cokroaminoto No.45","address":"Jl. HOS Cokroaminoto No.45","2":"0274618027","phone_number":"0274618027"},{"0":"Indo Jaya Sakti","shop_name":"Indo Jaya Sakti","1":"Jl. Hos Cokroaminoto No. 157 B","address":"Jl. Hos Cokroaminoto No. 157 B","2":"0274620188","phone_number":"0274620188"},{"0":"Toko Sepeda Rodalink","shop_name":"Toko Sepeda Rodalink","1":"Jl. Laskda Adisucipto Km 6 No. 155C","address":"Jl. Laskda Adisucipto Km 6 No. 155C","2":"0274487229","phone_number":"0274487229"},{"0":"Pedro Pit Shop (Pusat)","shop_name":"Pedro Pit Shop (Pusat)","1":"Jln. Kebon Agung Km 4,6 Los Danon, Godean","address":"Jln. Kebon Agung Km 4,6 Los Danon, Godean","2":"0816972823","phone_number":"0816972823"},{"0":"Pedro Pit Shop (Cabang)","shop_name":"Pedro Pit Shop (Cabang)","1":"Godean Km 9, Godean","address":"Godean Km 9, Godean","2":"02747171665","phone_number":"02747171665"},{"0":"Pedro Pit Shop (Cabang)","shop_name":"Pedro Pit Shop (Cabang)","1":"Jln. Lingkar Utara (ringroad), Karangnongko, Maguwo, Depok, Sleman","address":"Jln. Lingkar Utara (ringroad), Karangnongko, Maguwo, Depok, Sleman","2":"085729075277","phone_number":"085729075277"},{"0":"Nurhayati Bike","shop_name":"Nurhayati Bike","1":"Jalan Raya Cebongan Sleman","address":"Jalan Raya Cebongan Sleman","2":"-","phone_number":"-"},{"0":"Love Sepeda","shop_name":"Love Sepeda","1":"Gandok, Gang suryo No.16, Condongcatur, Depok, Sleman","address":"Gandok, Gang suryo No.16, Condongcatur, Depok, Sleman","2":"085743919166","phone_number":"085743919166"}]}
我怎樣才能獲得通過shop_name緯度和經度? 什麼,我在我的代碼做錯誤,請幫助我。之前謝謝。
您的文章是太長了 - 沒有人真的會去通過它一行一行地找到你所需要的。下一次嘗試將其降低到最小的情況下。 –
這也是這一個http://stackoverflow.com/questions/12693579/的副本 - 請不要這樣做,刪除它們 – NickT
@NickT感謝您的建議人之一:) –