<tfoot id='eg8qz'></tfoot>

    <small id='eg8qz'></small><noframes id='eg8qz'>

    • <bdo id='eg8qz'></bdo><ul id='eg8qz'></ul>
  • <legend id='eg8qz'><style id='eg8qz'><dir id='eg8qz'><q id='eg8qz'></q></dir></style></legend>
  • <i id='eg8qz'><tr id='eg8qz'><dt id='eg8qz'><q id='eg8qz'><span id='eg8qz'><b id='eg8qz'><form id='eg8qz'><ins id='eg8qz'></ins><ul id='eg8qz'></ul><sub id='eg8qz'></sub></form><legend id='eg8qz'></legend><bdo id='eg8qz'><pre id='eg8qz'><center id='eg8qz'></center></pre></bdo></b><th id='eg8qz'></th></span></q></dt></tr></i><div id='eg8qz'><tfoot id='eg8qz'></tfoot><dl id='eg8qz'><fieldset id='eg8qz'></fieldset></dl></div>

      1. 使用 json 获取当前位置

        时间:2023-09-02
          <tbody id='6reTW'></tbody>
        1. <tfoot id='6reTW'></tfoot>

            <bdo id='6reTW'></bdo><ul id='6reTW'></ul>
              <legend id='6reTW'><style id='6reTW'><dir id='6reTW'><q id='6reTW'></q></dir></style></legend>

                <small id='6reTW'></small><noframes id='6reTW'>

                  <i id='6reTW'><tr id='6reTW'><dt id='6reTW'><q id='6reTW'><span id='6reTW'><b id='6reTW'><form id='6reTW'><ins id='6reTW'></ins><ul id='6reTW'></ul><sub id='6reTW'></sub></form><legend id='6reTW'></legend><bdo id='6reTW'><pre id='6reTW'><center id='6reTW'></center></pre></bdo></b><th id='6reTW'></th></span></q></dt></tr></i><div id='6reTW'><tfoot id='6reTW'></tfoot><dl id='6reTW'><fieldset id='6reTW'></fieldset></dl></div>
                • 本文介绍了使用 json 获取当前位置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  您好,我正在编写一个应用程序,它获取当前的经纬度并将其转换为相应的地址.我可以获取纬度和经度,但如何使用 json 将其转换为相应的地址.我是 json 新手.我尝试了一些示例代码,但没有得到地址

                  Hi i a m writing an application whih gets the current latitude and longitude and convert it to corrsponding address.i can get the lattitude and longitutde but how to convert it to the corresponding address using json. i am new to json. i tried some sample codes butnot getting the address

                  这是我的代码

                  import java.io.IOException;
                  import java.util.List;
                  import java.util.Locale;
                  
                  import android.content.Context;
                  import android.location.Address;
                  import android.location.Geocoder;
                  import android.location.Location;
                  import android.location.LocationListener;
                  import android.location.LocationManager;
                  import android.os.Bundle;
                  import android.support.v4.app.FragmentActivity;
                  import android.util.Log;
                  import android.view.Menu;
                  import android.widget.Toast;
                  
                  import com.google.android.gms.maps.CameraUpdate;
                  import com.google.android.gms.maps.CameraUpdateFactory;
                  import com.google.android.gms.maps.GoogleMap;
                  import com.google.android.gms.maps.SupportMapFragment;
                  import com.google.android.gms.maps.model.BitmapDescriptorFactory;
                  import com.google.android.gms.maps.model.CameraPosition;
                  import com.google.android.gms.maps.model.LatLng;
                  import com.google.android.gms.maps.model.LatLngBounds;
                  import com.google.android.gms.maps.model.Marker;
                  import com.google.android.gms.maps.model.MarkerOptions;
                  import com.google.android.maps.GeoPoint;
                  
                  
                  
                  public class GMapActivity extends FragmentActivity {
                  private GoogleMap map;
                  
                  
                         @Override
                  
                         protected void onCreate(Bundle savedInstanceState) {
                                super.onCreate(savedInstanceState);
                                setContentView(R.layout.activity_map);
                                LocationManager locManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
                  
                                LocationListener locListener = new GpsActivity(getBaseContext());
                          locManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 0, 0, locListener);
                  
                  
                                if (map == null) {
                                       map = ((SupportMapFragment)  getSupportFragmentManager().findFragmentById(R.id.map))
                                               .getMap();
                  
                                  map.setMyLocationEnabled(true);
                  
                  
                                }
                         }
                  
                         @Override
                         public boolean onCreateOptionsMenu(Menu menu) {
                                // Inflate the menu; this adds items to the action bar if it is present.
                                getMenuInflater().inflate(R.menu.map, menu);
                                return true;
                         }
                  
                  
                  
                                private class GpsActivity implements LocationListener{
                                       Marker marker;
                                       Context mcontext;
                                       public GpsActivity(Context context){
                                             super();
                                             mcontext=context;
                                       }
                                       @Override
                                       public void onLocationChanged(Location location) {
                                             // TODO Auto-generated method stub
                                             if (location != null) {
                  
                                                    double latitude=location.getLatitude();
                  
                                                    double longitude=location.getLongitude();
                  
                                                    LatLng gpslocation=new LatLng(latitude,longitude);
                  
                  
                                                       Toast.makeText(getApplicationContext(),"" +gpslocation,
                                                                        Toast.LENGTH_LONG).show();
                  

                  请帮帮我

                  提前致谢

                  推荐答案

                  要改回人类可读的格式,您也可以使用 Geocoder 但有时由于 google play 服务问题而无法正常工作.我将此 json 地理编码用作以防万一.

                  To change back human readable format, you can also use Geocoder but that is not working sometimes because google play service problem. I used this json geocodeing as second option for in case.

                  请参考 Google 地理编码 API

                  工作流程是通过您的纬度和经度并获取当前位置.请求网址会是这样的.

                  Workflow is pass your latitude and longitude and get current location. Request url gonna be like this.

                  String reqURL = "http://maps.googleapis.com/maps/api/geocode/json?latlng="+ lat+","+lng +"&sensor=true";
                  

                  希望这个答案会对你有所帮助.

                  Hopefully, this answer will help you.

                  public static JSONObject getLocationInfo(double lat, double lng) {
                  
                      HttpGet httpGet = new HttpGet("http://maps.googleapis.com/maps/api/geocode/json?latlng="+ lat+","+lng +"&sensor=true");
                      HttpClient client = new DefaultHttpClient();
                      HttpResponse response;
                      StringBuilder stringBuilder = new StringBuilder();
                  
                      try {
                          response = client.execute(httpGet);
                          HttpEntity entity = response.getEntity();
                          InputStream stream = entity.getContent();
                          int b;
                          while ((b = stream.read()) != -1) {
                              stringBuilder.append((char) b);
                          }
                      } catch (ClientProtocolException e) {
                      } catch (IOException e) {
                      }
                  
                      JSONObject jsonObject = new JSONObject();
                      try {
                          jsonObject = new JSONObject(stringBuilder.toString());
                      } catch (JSONException e) {
                          e.printStackTrace();
                      }
                  
                      return jsonObject;
                  }
                  
                  public static String getCurrentLocationViaJSON(double lat, double lng) {
                  
                      JSONObject jsonObj = getLocationInfo(lat, lng);
                      Log.i("JSON string =>", jsonObj.toString());
                  
                      String currentLocation = "testing";
                      String street_address = null;
                      String postal_code = null; 
                  
                      try {
                          String status = jsonObj.getString("status").toString();
                          Log.i("status", status);
                  
                          if(status.equalsIgnoreCase("OK")){
                              JSONArray results = jsonObj.getJSONArray("results");
                              int i = 0;
                              Log.i("i", i+ "," + results.length() ); //TODO delete this
                              do{
                  
                                  JSONObject r = results.getJSONObject(i);
                                  JSONArray typesArray = r.getJSONArray("types");
                                  String types = typesArray.getString(0);
                  
                                  if(types.equalsIgnoreCase("street_address")){
                                      street_address = r.getString("formatted_address").split(",")[0];
                                      Log.i("street_address", street_address);
                                  }else if(types.equalsIgnoreCase("postal_code")){
                                      postal_code = r.getString("formatted_address");
                                      Log.i("postal_code", postal_code);
                                  }
                  
                                  if(street_address!=null && postal_code!=null){
                                      currentLocation = street_address + "," + postal_code;
                                      Log.i("Current Location =>", currentLocation); //Delete this
                                      i = results.length();
                                  }
                  
                                  i++;
                              }while(i<results.length());
                  
                              Log.i("JSON Geo Locatoin =>", currentLocation);
                              return currentLocation;
                          }
                  
                      } catch (JSONException e) {
                          Log.e("testing","Failed to load JSON");
                          e.printStackTrace();
                      }
                      return null;
                  }
                  

                  根据我的经验,只有设备生成的纬度和经度才能工作.然后调用

                  As my experience, only device generated latitude and longitude will work. Then call

                  String currentLocation = getCurrentLocationViaJSON(lat, lng);
                  

                  这篇关于使用 json 获取当前位置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:在没有活动的情况下使用 Google 地图位置 下一篇:Android Google Map如何检查gps位置是否在圆圈内

                  相关文章

                  最新文章

                  • <bdo id='24NVy'></bdo><ul id='24NVy'></ul>

                  1. <tfoot id='24NVy'></tfoot>

                    <legend id='24NVy'><style id='24NVy'><dir id='24NVy'><q id='24NVy'></q></dir></style></legend>

                      <small id='24NVy'></small><noframes id='24NVy'>

                      <i id='24NVy'><tr id='24NVy'><dt id='24NVy'><q id='24NVy'><span id='24NVy'><b id='24NVy'><form id='24NVy'><ins id='24NVy'></ins><ul id='24NVy'></ul><sub id='24NVy'></sub></form><legend id='24NVy'></legend><bdo id='24NVy'><pre id='24NVy'><center id='24NVy'></center></pre></bdo></b><th id='24NVy'></th></span></q></dt></tr></i><div id='24NVy'><tfoot id='24NVy'></tfoot><dl id='24NVy'><fieldset id='24NVy'></fieldset></dl></div>