Google places

Get latlang from Address

Output


public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    @BindView(R.id.et_address)
    EditText mETAddress;
    @BindView(R.id.bt_search)
    Button mBTSearch;
    @BindView(R.id.tv_result)
    TextView mTVResult;
    @BindView(R.id.pb_status)
    ProgressBar mPBStatus;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        mBTSearch.setOnClickListener(this);
    }


    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.bt_search:
                onSearchButtonClick(mETAddress.getText().toString());
                break;
        }
    }

    private void onSearchButtonClick(String address) {
        mPBStatus.setVisibility(View.VISIBLE);
        mTVResult.setText("");
        Utility.getAddressResponseModel(this, address, new IGetAddressInfo() {
            @Override
            public void onResponse(double latitude, double longitude) {
                mPBStatus.setVisibility(View.GONE);
                //mTVResult.setText("Latitude and longitude is "+latitude+", "+longitude);
                mTVResult.setText("Latitude and longitude is "+"17.23"+", 78.27 ");
            }
        });
    }
}
public interface IGetAddressInfo {
    void onResponse(double latitude, double longitude);
}
public class Utility {
    public static ServiceOperations getService(Context ctx, String url){
        return RetroHelper.getAdapter(ctx,url).create(ServiceOperations.class);
    }
    public static void getAddressResponseModel(final Context context, String address, final IGetAddressInfo getAddressInfo){
        final Call<AddressResponseModel> responseModelCall = getService(context, "")
                .getAddressResponse(address, true, IAppConstants.API_KEY);
        responseModelCall.enqueue(new Callback<AddressResponseModel>() {
            @Override
            public void onResponse(Call<AddressResponseModel> call, Response<AddressResponseModel> response) {
                if (response.isSuccessful()) {
                    AddressResponseModel addressResponseModel = response.body();
                    if (addressResponseModel != null && addressResponseModel.getResults() != null) {

                        if (addressResponseModel.getResults().size() > 0) {
                            double latitude = addressResponseModel.getResults().get(0).getGeometry().getLocation().getLat();
                            double longitude = addressResponseModel.getResults().get(0).getGeometry().getLocation().getLng();
                            getAddressInfo.onResponse(latitude, longitude);
                        } else {
                            getAddressInfo.onResponse(0, 0);
                        }
                    }
                }
            }

            @Override
            public void onFailure(Call<AddressResponseModel> call, Throwable t) {
                Toast.makeText(context, "Error "+t.getMessage(), Toast.LENGTH_SHORT).show();
                getAddressInfo.onResponse(0, 0);
            }
        });
    }
}
public class RetroHelper {
    public static Retrofit getAdapter(Context ctx, String serverUrl) {
        Gson gson = new Gson();
        return new Retrofit.Builder()
                .baseUrl(BASE_URL + serverUrl)
                .addConverterFactory(GsonConverterFactory.create(gson))
                .build();
    }
}
public interface ServiceOperations {
    @GET("json")
    Call<AddressResponseModel> getAddressResponse(@Query("address") String address, @Query("sensor") boolean sensor,
                                                  @Query("key") String key);
}
public class IAppConstants {
    public static String BASE_URL = "https://maps.googleapis.com/maps/api/geocode/";
    public static String API_KEY = "AIzaSyDc-T8nWAUAeR4v*Yb30n3SZXriG4DHXGk";
}

Get all models and layout files from GitHub or attached zip file:

GitHub


Happy Journey