Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.coreoffice;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.io.UnsupportedEncodingException;
- import java.net.HttpURLConnection;
- import java.net.URL;
- import java.net.URLEncoder;
- import java.util.HashMap;
- import java.util.List;
- import org.json.JSONObject;
- import android.os.AsyncTask;
- import android.os.Bundle;
- import android.support.v4.app.FragmentActivity;
- import android.util.Log;
- import android.widget.Button;
- import android.widget.EditText;
- import com.example.coreoffice.library.GeocodeJSONParser;
- import com.google.android.gms.maps.CameraUpdate;
- import com.google.android.gms.maps.CameraUpdateFactory;
- import com.google.android.gms.maps.GoogleMap;
- import com.google.android.gms.maps.SupportMapFragment;
- import com.google.android.gms.maps.model.LatLng;
- import com.google.android.gms.maps.model.LatLngBounds;
- import com.google.android.gms.maps.model.Marker;
- import com.google.android.gms.maps.model.MarkerOptions;
- public class MapsActivity extends FragmentActivity
- {
- Button mBtnFind;
- GoogleMap mMap;
- EditText etPlace;
- private static final String TAG = "MapsActivity";
- private int i;
- public String[] Post;
- public String[] Description;
- public String[] ID;
- public String[] Title;
- public MapsActivity()
- {
- this.i = 0;
- }
- @Override
- protected void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.fragment_maps);
- Bundle extras = getIntent().getExtras();
- String[] Post = extras.getStringArray("Post");
- String[] Description = extras.getStringArray("Description");
- int[] ID = extras.getIntArray("ID");
- String[] Title = extras.getStringArray("Title");
- SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
- mMap = mapFragment.getMap();
- for (int i = 0; i < Post.length; i++)
- {
- String location = Post[i].toString();
- String url = "https://maps.googleapis.com/maps/api/geocode/json?";
- try
- {
- location = URLEncoder.encode(location, "utf-8");
- }
- catch (UnsupportedEncodingException e)
- {
- e.printStackTrace();
- }
- String address = "address=" + location;
- String sensor = "sensor=false";
- url = url + address + "&" + sensor;
- Log.v(TAG + "onClick", "url is: " + url);
- DownloadTask downloadTask = new DownloadTask();
- downloadTask.execute(url);
- }
- }
- private String downloadUrl(String strUrl) throws IOException
- {
- String data = "";
- InputStream iStream = null;
- HttpURLConnection urlConnection = null;
- try
- {
- URL url = new URL(strUrl);
- // Creating an http connection to communicate with url
- urlConnection = (HttpURLConnection) url.openConnection();
- // Connecting to url
- urlConnection.connect();
- // Reading data from url
- iStream = urlConnection.getInputStream();
- BufferedReader br = new BufferedReader(new InputStreamReader(iStream));
- StringBuffer sb = new StringBuffer();
- String line = "";
- while ((line = br.readLine()) != null)
- {
- sb.append(line);
- }
- data = sb.toString();
- br.close();
- }
- catch (Exception e)
- {
- Log.d("Exception while downloading url", e.toString());
- }
- finally
- {
- iStream.close();
- urlConnection.disconnect();
- }
- return data;
- }
- /** A class, to download Places from Geocoding webservice */
- private class DownloadTask extends AsyncTask<String, Integer, String>
- {
- String data = null;
- // Invoked by execute() method of this object
- @Override
- protected String doInBackground(String... url)
- {
- try
- {
- data = downloadUrl(url[0]);
- }
- catch (Exception e)
- {
- Log.d("Background Task", e.toString());
- }
- return data;
- }
- // Executed after the complete execution of doInBackground() method
- @Override
- protected void onPostExecute(String result)
- {
- ParserTask parserTask = new ParserTask();
- parserTask.execute(result);
- }
- }
- class ParserTask extends AsyncTask<String, Integer, List<HashMap<String, String>>>
- {
- JSONObject jObject;
- @Override
- protected List<HashMap<String, String>> doInBackground(String... jsonData)
- {
- List<HashMap<String, String>> places = null;
- GeocodeJSONParser parser = new GeocodeJSONParser();
- try
- {
- jObject = new JSONObject(jsonData[0]);
- /** Getting the parsed data as a an ArrayList */
- places = parser.parse(jObject);
- }
- catch (Exception e)
- {
- Log.d("Exception", e.toString());
- }
- return places;
- }
- // Executed after the complete execution of doInBackground() method
- @Override
- protected void onPostExecute(List<HashMap<String, String>> list)
- {
- final int padding = 30;
- for (int i = 0; i < list.size(); i++)
- {
- // Creating a marker
- MarkerOptions markerOptions = new MarkerOptions();
- HashMap<String, String> hmPlace = list.get(i);
- double lat = Double.parseDouble(hmPlace.get("lat"));
- double lng = Double.parseDouble(hmPlace.get("lng"));
- String name = hmPlace.get("formatted_address");
- LatLng latLng = new LatLng(lat, lng);
- markerOptions.position(latLng);
- markerOptions.title(name);
- // mMap.addMarker(markerOptions);
- Marker storeMarker = mMap.addMarker(new MarkerOptions().position(latLng).title(name).snippet("test"));
- //CameraUpdate center = CameraUpdateFactory.newLatLng(new LatLng(lat, lng));
- //CameraUpdate zoom = CameraUpdateFactory.zoomTo(10);
- //mMap.moveCamera(center);
- //mMap.animateCamera(zoom);
- LatLngBounds bounds = LatLngBounds.builder().include(latLng).build();
- mMap.moveCamera(CameraUpdateFactory.newLatLngBounds(bounds, padding));
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment