我怎样才能从地址获得经度和纬度?

时间:2012-05-03 04:14:10

标签: android google-maps geocoding

我必须实施我的谷歌地图,我输入任何地址,它将自动获得经度和纬度。这是我试过的代码

 coder = new Geocoder(this);
 try {
     String locationName ="Gulshan 1";

        List<Address> addressList = coder.getFromLocationName(
                locationName, 5);
        if (addressList != null && addressList.size() > 0) {
            destLat = (int) (addressList.get(0).getLatitude() * 1e6);
            destLon = (int) (addressList.get(0).getLongitude() * 1e6);

            TextView pozycja = (TextView) findViewById(R.id.position);
            pozycja.setText("lat: "
                    + addressList.get(0).getLatitude() + " lng: "
                    + addressList.get(0).getLongitude());
    }
 }
 catch (Exception e) {
     Log.e("error", e.getMessage().toString());
}

可以从此代码中获取位置吗?

5 个答案:

答案 0 :(得分:2)

使用以下代码即可。

 Geocoder coder = new Geocoder(this);
     List<Address>  address = coder.getFromLocationName(
                                                "your address", 5);
                                        if (address == null)
                                            Log.d(TAG,
                                                    "Latitude and longitude not found");
                                        else {
                                            Address location = address.get(0);
                                            latitude = location.getLatitude();
                                            longitude = location.getLongitude();
                                        }

答案 1 :(得分:1)

使用以下代码:

List<Address> addressList = coder.getFromLocationName(locationName, 1);
Address addr=addressList.get(0);
 destLat=addr.getLatitude();
destLon =addr..getLongitude();
TextView pozycja = (TextView) findViewById(R.id.position);
            pozycja.setText("lat: "+destLat+ " lng: "+destLon);

答案 2 :(得分:0)

你可以看到这一点。这就是我获得转换信息的方式。

// getLatLon( “高尔杉-1”, “达卡”);

private void getLatLon(String loc,String div) {
        Address addr = null;
        try {
            List<Address> addresses = new Geocoder(DataScrapper.this, Locale
                    .getDefault()).getFromLocationName(loc + " " + div
                    + " Bangladesh", 1);

            if (!addresses.isEmpty()) {
                addr = addresses.get(0);

            } else
                addr = null;
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        // addr.getLatitude();
    }

答案 3 :(得分:0)

public double[] getGeoCodesFromAddress(String pLocationAddress) {
        try {

            cLocationGeneratorProp = new LocationGeneratorProp();
            objGeoCoder = new Geocoder(vContext, Locale.getDefault());
            vListAddress = objGeoCoder.getFromLocationName(pLocationAddress, 1);
            if (vListAddress != null) {
                latlong = new double[2];
                latlong[0] = vListAddress.get(0).getLatitude();
                latlong[1] = vListAddress.get(0).getLongitude();
            }

        } catch (Exception e) {
            Log.e("getGeoCodesFromAddress()", e.getMessage().toString());

        }
        return latlong;
    }

LocationGeneratorProp

public class LocationGeneratorProp {
    private String postalcode;
    private String countryname;
    private String countrycode;
    private String fulladdress;
    private String locationtype;
    private double locationLat;
    private double locationLong;
    private double fromlocationlatitude;
    private double fromlocationlongitude;
    private double destinationlocationlatitude;
    private double destinationlocationlongitude;

    public String getPostalcode() {
        return postalcode;
    }

    /**
     * @param postalcode
     *            Postal Code Of the Adrress
     */
    public void setPostalcode(String postalcode) {
        this.postalcode = postalcode;
    }

    /**
     * @return String CountryName
     * 
     */
    public String getCountryname() {
        return countryname;
    }

    public void setCountryname(String countryname) {
        this.countryname = countryname;
    }

    public String getCountrycode() {
        return countrycode;
    }

    public void setCountrycode(String countrycode) {
        this.countrycode = countrycode;
    }

    public String getFulladdress() {
        return fulladdress;
    }

    public void setFulladdress(String fulladdress) {
        this.fulladdress = fulladdress;
    }

    public String getLocationtype() {
        return locationtype;
    }

    public void setLocationtype(String locationtype) {
        this.locationtype = locationtype;
    }

    public double getLocationLat() {
        return locationLat;
    }

    public void setLocationLat(double locationLat) {
        this.locationLat = locationLat;
    }

    public double getLocationLong() {
        return locationLong;
    }

    public void setLocationLong(double locationLong) {
        this.locationLong = locationLong;
    }

    public double getFromlocationlatitude() {
        return fromlocationlatitude;
    }

    public void setFromlocationlatitude(double fromlocationlatitude) {
        this.fromlocationlatitude = fromlocationlatitude;
    }

    public double getFromlocationlongitude() {
        return fromlocationlongitude;
    }

    public void setFromlocationlongitude(double fromlocationlongitude) {
        this.fromlocationlongitude = fromlocationlongitude;
    }

    public double getDestinationlocationlatitude() {
        return destinationlocationlatitude;
    }

    public void setDestinationlocationlatitude(
            double destinationlocationlatitude) {
        this.destinationlocationlatitude = destinationlocationlatitude;
    }

    public double getDestinationlocationlongitude() {
        return destinationlocationlongitude;
    }

    public void setDestinationlocationlongitude(
            double destinationlocationlongitude) {
        this.destinationlocationlongitude = destinationlocationlongitude;
    }

}

jst测试了具有给定地址的代码 如果有任何疑问,请告诉我。

答案 4 :(得分:0)

您可以使用以下代码从任何地址(城市,出租地,国家/地区)轻松获取纬度和经度。

        public void getlatd()

   {        
       String add=txt_add.getText().toString();//address of location u have entered
      Toast.makeText(this, "Your add is : "+add, Toast.LENGTH_LONG).show();
    final Geocoder geocoder = new Geocoder(this);       
    try {

      List<Address> addresses = geocoder.getFromLocationName(add, 1);

      if (addresses != null && !addresses.isEmpty()) {

       Address address = addresses.get(0);

       txt.setText("latitude and longtd is :"+address.getLatitude()+"\n"+address.getLongitude());
      }
    else  {
           Toast.makeText(this, "NO latd and longtd for this add", Toast.LENGTH_LONG).show(); 
      }
    } 
   catch (IOException e)    {
         Toast.makeText(this, "Error :"+e.getMessage(), Toast.LENGTH_LONG).show();
    }
}


                     "Robo-Techi"