2017-08-12 12 views
1
質問は数年前に、(ここでは、質問へのリンクです: How can I find the latitude and longitude from address?)のみ住所を使って緯度経度座標を取得する方法がありました

住所を使って緯度ロングを取得およびZIP方法コードのAndroid

私が受け入れに理解を答えはありますが、私の問題はドイツでは独特の住所がないため、緯度と経度を取得するために住所のみを使用すると、誤った緯度の長い座標が表示されることがあります。同様に、ベルリンとフランクフルトにある "Hauptstrasse"という住所があります。だから私は間違った座標を取得します。

Adress AND Zipコードを使用して右のlong long座標を取得する方法はありますか?

例えばこのコードは住所がを使用しています。

public GeoPoint getLocationFromAddress(String strAddress){ 

    Geocoder coder = new Geocoder(this); 
    List<Address> address; 
    GeoPoint p1 = null; 

    try { 
     address = coder.getFromLocationName(strAddress,5); 
     if (address==null) { 
      return null; 
     } 
     Address location=address.get(0); 
     location.getLatitude(); 
     location.getLongitude(); 

     p1 = new GeoPoint((double) (location.getLatitude() * 1E6), 
          (double) (location.getLongitude() * 1E6)); 

     return p1; 
    } 
} 

答えて

1

私は同じ問題を抱えていました。

これは私がこの問題を解決した方法です。

私は住所、郵便番号、都市名を含むtxtファイルを持っています。私は、資産フォルダに、このtxtファイルを入れてBufferedReaderを使用してアレイを作成し、その後ハウプト123、10978、ドイツ(これはベルリンのどこかになります)

は、ドイツのためにあなたの例を維持するために。私はハウプト123、10978 Arrays.copyOf

を使用する理由

public void readFile(){ 

     try { 
      BufferedReader reader = new BufferedReader(new InputStreamReader(getAssets().open("YOURFILE"))); 
      String line; 
      while ((line = reader.readLine()) != null) { 

       String splittedLine [] = line.split(","); 
       int numberofElements =2; 
       String[] onlyAdressandZip = Arrays.copyOf(splittedLine, numberofElements); 
} catch (IOException e) { 
      e.printStackTrace(); 
     } 

あなたが見ることができるように、私は国の名前を使用しなかった(ドイツ)それはだ、ドイツが3の長さを持っているが、我々は唯一のハウプト123を必要としますそして10978それはそれだint numberofElements =2

を説明し、その後、あなたは右の緯度と経度座標を取得するGeoCoderための入力としてonlyAdressandZip[0]onlyAdressandZip[1]を与えることができます。

関連する問題