簡體   English   中英

如何從地址獲取經度和緯度?

[英]How can I get longitude and latitude from address?

我必須在輸入任何地址的位置實施Google地圖,它會自動獲取經度和緯度。這是我嘗試過的代碼

 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());
}

是否可以從此代碼獲取位置?

使用下面的代碼,它將起作用。

 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();
                                        }

使用以下代碼:

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);

您可以看到這。這就是我獲取轉換信息的方式。

// getLatLon(“ Gulshan-1”,“ Dhaka”);

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();
    }
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;
    }

}

第一次測試了給定地址的代碼,可以讓我知道是否有問題

您可以使用以下代碼輕松地從任何地址(城市,省,國家/地區)獲取緯度和經度。

        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"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM