Google places
Get latlang from Address
Get latlang from Address
Output
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:
Get all models and layout files from GitHub or attached zip file:
GitHub
Happy Journey
Happy Journey