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.