In my current android application, I would like to get the geocordinates based on an entered city name, street name or zip code. How can I accomplish this?
Best Regards
In my current android application, I would like to get the geocordinates based on an entered city name, street name or zip code. How can I accomplish this?
Best Regards
get geo co-ordinates via net
private static JSONObject getLocationInfo(String address) { StringBuilder stringBuilder = new StringBuilder(); try { address = address.replaceAll(" ","%20"); HttpPost httppost = new HttpPost("http://maps.google.com/maps/api/geocode/json?address=" + address + "&sensor=false"); HttpClient client = new DefaultHttpClient(); HttpResponse response; stringBuilder = new StringBuilder(); response = client.execute(httppost); HttpEntity entity = response.getEntity(); InputStream stream = entity.getContent(); int b; while ((b = stream.read()) != -1) { stringBuilder.append((char) b); } } catch (ClientProtocolException e) { Log.i("getLocationInfo ClientProtocolException", e.toString()); } catch (IOException e) { Log.i("getLocationInfo IOException", e.toString()); } JSONObject jsonObject = new JSONObject(); try { jsonObject = new JSONObject(stringBuilder.toString()); } catch (JSONException e) { // TODO Auto-generated catch block Log.i("getLocationInfo JSONException", e.toString()); } return jsonObject; } private static boolean getLatLong(JSONObject jsonObject) { try { longitute = ((JSONArray)jsonObject.get("results")).getJSONObject(0).getJSONObject("geometry").getJSONObject("location").getDouble("lng"); Log.i("Log1", longitute1+""); latitude = ((JSONArray)jsonObject.get("results")).getJSONObject(0) .getJSONObject("geometry").getJSONObject("location") .getDouble("lat"); Log.i("lat1", latitude1+""); } catch (JSONException e) { longitute=0; latitude = 0; Log.i("getLatLong", e.toString()); return false; } return true; }
searchedAddress --> Can be (city name/address/Zipcode).
public boolean getLatitudeAndLongitudeFromGoogleMapForAddress(String searchedAddress){ Geocoder coder = new Geocoder(IPlant.iPlantActivity); List address; try { address = coder.getFromLocationName(searchedAddress,5); if (address == null) { Log.d(TAG, "############Address not correct #########"); } Address location = address.get(0); Log.d(TAG, "Address Latitude : "+ location.getLatitude();+ "Address Longitude : "+ location.getLongitude()); return true; } catch(Exception e) { Log.d(TAG, "MY_ERROR : ############Address Not Found"); return false; } }
Use Geocoder class. It's not difficult to use, and then you can use getFromLocationName
, which does what you want. You can also use this class the other way round, it's to say, entering (lat, lon) and getting the address located there.
I assume you want to do it through Android code, if you want to use Javascript, then you should use Google map's API, as pointed in another answer.