Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import android.os.Bundle;
- import android.annotation.SuppressLint;
- import android.app.Activity;
- import android.view.Menu;
- import android.webkit.WebView;
- import android.webkit.WebViewClient;
- import android.widget.TextView;
- @SuppressLint("SetJavaScriptEnabled") @SuppressWarnings("unused")
- public class map extends Activity{
- WebView mWebView;
- static String latnow;
- static String lngnow;
- static String[] lat = new String[50];
- static String[] lng = new String[50];
- static int index;
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.map);
- mWebView = (WebView) findViewById(R.id.webView1);
- mWebView.setInitialScale(1);
- mWebView.getSettings().setJavaScriptEnabled(true);
- mWebView.getSettings().setLoadWithOverviewMode(true);
- mWebView.getSettings().setUseWideViewPort(true);
- mWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
- mWebView.setScrollbarFadingEnabled(false);
- mWebView.loadUrl("http://project.music2over.com/direction.php?" +
- "lat1="+latnow+"&long1="+lngnow+
- "&lat2="+lat[index]+"&long2="+lng[index]);
- mWebView.setWebViewClient(new WebViewClient() {
- public void onPageFinished(WebView view, String url) {
- // do your stuff here
- }
- });
- }
- public static void getLatLngNow(String lat,String lng){
- latnow = lat;
- lngnow = lng;
- }
- public static void getLatLng(String strlat,String strlng,int index){
- lat[index] = strlat;
- lng[index] = strlng;
- }
- public static void getIndex(String i){
- index = Integer.parseInt(i);
- }
- }
- .......................................................................................
- import android.app.Activity;
- import android.content.Intent;
- import android.location.Location;
- import android.net.Uri;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.Menu;
- import android.view.MenuItem;
- import android.view.View;
- import android.widget.AdapterView;
- import android.widget.ArrayAdapter;
- import android.widget.Button;
- import android.widget.Spinner;
- import com.google.android.gms.common.ConnectionResult;
- import com.google.android.gms.common.GooglePlayServicesClient;
- import com.google.android.gms.location.LocationClient;
- import com.google.android.gms.location.LocationListener;
- import com.google.android.gms.location.LocationRequest;
- import com.google.android.gms.maps.CameraUpdateFactory;
- import com.google.android.gms.maps.GoogleMap;
- import com.google.android.gms.maps.MapFragment;
- import com.google.android.gms.maps.model.BitmapDescriptorFactory;
- import com.google.android.gms.maps.model.LatLng;
- import com.google.android.gms.maps.model.Marker;
- import com.google.android.gms.maps.model.MarkerOptions;
- import java.net.URI;
- import java.util.HashMap;
- public class MapActivity extends Activity implements GooglePlayServicesClient.ConnectionCallbacks, GooglePlayServicesClient.OnConnectionFailedListener, LocationListener, SearchVenuesAsyncTaskResponse {
- private final String TAG = "SimpleMapsActivity";
- private GoogleMap mMap;
- private LocationRequest mLocationRequest;
- private LocationClient mLocationClient;
- private Location mCurrentLocation;
- private SearchVenues mSearchVenues;
- private String[] brandArr, raduisArr;
- private Spinner mBrandSpinner, mRadiusSpinner;
- private ArrayAdapter adapterBrand,adapterRadius;
- private Button mSearchButton;
- private HashMap<Marker, Integer> mMarkers;
- String filterRaduis;
- String filterBrand;
- int VENUES_LENGTH;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_map);
- mBrandSpinner = (Spinner)findViewById(R.id.spinner_type);
- mRadiusSpinner = (Spinner)findViewById(R.id.spinner_distance);
- mSearchButton = (Button) findViewById(R.id.button_search);
- filterRaduis = "1 k.m.";
- filterBrand = "All";
- mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
- setupSpinner();
- mSearchButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- filterSearchVenues();
- }
- });
- setUpMapIfNeeded();
- /*
- * Create a new location client, using the enclosing class to
- * handle callbacks.
- */
- mLocationClient = new LocationClient(this, this, this);
- // Create the LocationRequest object
- mLocationRequest = LocationRequest.create();
- }
- /*
- * Called when the Activity becomes visible.
- */
- @Override
- protected void onStart() {
- super.onStart();
- // Connect the client
- mLocationClient.connect();
- }
- /*
- * Called when the Activity is no longer visible.
- */
- @Override
- protected void onStop() {
- // Disconnecting the client invalidates it.
- mLocationClient.disconnect();
- super.onStop();
- }
- private void setUpMapIfNeeded() {
- // Do a null check to confirm that we have not already instantiated the map.
- if (mMap == null) {
- mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))
- .getMap();
- // Check if we were successful in obtaining the map.
- if (mMap != null) {
- // The Map is verified. It is now safe to manipulate the map.
- }
- }
- // Enable my location layer on map
- mMap.setMyLocationEnabled(true);
- mMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {
- @Override
- public void onInfoWindowClick(Marker marker) {
- int venuePosition = mMarkers.get(marker);
- Log.i(TAG, "Title: "+mSearchVenues.getName(venuePosition)+mSearchVenues.getLat(venuePosition)+","+mSearchVenues.getLng(venuePosition));
- Intent routeIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://maps.google.com/maps?f=d&daddr="+mSearchVenues.getLat(venuePosition)+","+mSearchVenues.getLng(venuePosition)));
- startActivity(routeIntent);
- }
- });
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.activity_main, menu);
- return true;
- }
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- // Handle action bar item clicks here. The action bar will
- // automatically handle clicks on the Home/Up button, so long
- // as you specify a parent activity in AndroidManifest.xml.
- int id = item.getItemId();
- if (id == R.id.action_settings) {
- return true;
- }
- return super.onOptionsItemSelected(item);
- }
- @Override
- public void onConnected(Bundle bundle) {
- Log.i(TAG, "Connected");
- mLocationClient.requestLocationUpdates(mLocationRequest, this);
- }
- @Override
- public void onDisconnected() {
- Log.i(TAG, "Disconnected");
- }
- @Override
- public void onConnectionFailed(ConnectionResult connectionResult) {
- Log.i(TAG, "Connection failed");
- }
- @Override
- public void onLocationChanged(Location location) {
- mCurrentLocation = location;
- Log.i(TAG, "LocationChanged: " + mCurrentLocation.getLatitude() + ", " + mCurrentLocation.getLongitude());
- // Update map
- updateMapCamera();
- // Search venues
- initSearchVenues();
- }
- private void setupSpinner() {
- //set spinner
- raduisArr = new String[]{"1 k.m.","2 k.m.","3 k.m.","4 k.m.","5 k.m.","6 k.m.","7 k.m.","8 k.m.","9 k.m.","10 k.m."};
- brandArr = new String[]{"All","Shell","BangJak","CalTex","Susco","Esso","LPG","Pitonas","PTT","Greennat","Other"};
- adapterBrand = new ArrayAdapter(this, android.R.layout.simple_spinner_item, brandArr);
- adapterBrand.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
- adapterRadius = new ArrayAdapter(this, android.R.layout.simple_spinner_item, raduisArr);
- adapterRadius.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
- mBrandSpinner.setAdapter(adapterBrand);
- mRadiusSpinner.setAdapter(adapterRadius);
- //set spinner radius
- mRadiusSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
- public void onNothingSelected(AdapterView<?> arg0) {filterRaduis = "Not Selected";}
- public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
- // TODO Auto-generated method stub
- filterRaduis = raduisArr[arg2];
- }});
- //set spinner Brand
- mBrandSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
- public void onNothingSelected(AdapterView<?> arg0) {
- filterBrand = "Not Selected";}
- public void onItemSelected(AdapterView<?> arg0, View arg1,
- int arg2, long arg3) {
- filterBrand = brandArr[arg2];
- }});
- }
- private void updateMapCamera() {
- if (mCurrentLocation != null) {
- LatLng mapCenter = new LatLng(mCurrentLocation.getLatitude(), mCurrentLocation.getLongitude());
- mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(mapCenter, 13));
- }
- }
- private void initSearchVenues() {
- if (mCurrentLocation != null) {
- // set value start App for flag 3 station near
- String latLng = mCurrentLocation.getLatitude() + "," + mCurrentLocation.getLongitude();
- new SearchVenuesAsyncTask(this).execute(latLng, filterRaduis);
- }
- }
- private void updateSearchVenuesOnMap() {
- VENUES_LENGTH = mSearchVenues.getLength();
- Log.i(TAG, "Radius: "+filterRaduis+", Type: "+filterBrand+", Venues Length: "+VENUES_LENGTH);
- this.runOnUiThread(new Runnable() {
- @Override
- public void run() {
- mMap.clear();
- mMarkers = new HashMap<Marker, Integer>();
- for (int i = 0; i < mSearchVenues.getLength(); i++) {
- if (filterBrand.equals(mSearchVenues.getType(i)) || filterBrand.equals("All")) {
- Marker marker = mMap.addMarker(new MarkerOptions()
- .position(new LatLng(
- Double.parseDouble(mSearchVenues.getLat(i)),
- Double.parseDouble(mSearchVenues.getLng(i))))
- .title(mSearchVenues.getName(i))
- .snippet(mSearchVenues.getDistance(i)+" k.m.")
- .icon(BitmapDescriptorFactory.fromResource(mSearchVenues.getIcon(i)))
- );
- mMarkers.put(marker, i);
- }
- }
- }
- });
- }
- private void filterSearchVenues() {
- if (mCurrentLocation == null) {
- return;
- }
- String latLng = mCurrentLocation.getLatitude()+","+mCurrentLocation.getLongitude();
- new SearchVenuesAsyncTask(this).execute(latLng, filterRaduis);
- }
- @Override
- public void onSearchVenuesPostExcute(SearchVenues result) {
- mSearchVenues = result;
- // Update venues on map
- updateSearchVenuesOnMap();
- }
- }
- .......................................................................................................
- import org.apache.http.HttpEntity;
- import org.apache.http.HttpResponse;
- import org.apache.http.client.HttpClient;
- import org.apache.http.client.methods.HttpGet;
- import org.apache.http.impl.client.DefaultHttpClient;
- import org.apache.http.util.EntityUtils;
- import org.json.JSONArray;
- import org.json.JSONObject;
- import android.util.Log;
- public class SearchVenues {
- String response="";
- int LENGTH;
- String[] NAME;
- String[] lat;
- String[] lng;
- String[] TYPE;
- int[] ICON;
- String[] DISTANCE;
- String radiusTrue;
- public SearchVenues(String LatLng, String radius) {
- //set radius
- if(radius.contains("1")){
- radiusTrue = "1000";
- }else if(radius.contains("2")){
- radiusTrue = "2000";
- }else if(radius.contains("3")){
- radiusTrue = "3000";
- }else if(radius.contains("4")){
- radiusTrue = "4000";
- }else if(radius.contains("5")){
- radiusTrue = "5000";
- }else if(radius.contains("6")){
- radiusTrue = "6000";
- }else if(radius.contains("7")){
- radiusTrue = "7000";
- }else if(radius.contains("8")){
- radiusTrue = "8000";
- }else if(radius.contains("9")){
- radiusTrue = "9000";
- }else if(radius.contains("10")){
- radiusTrue = "10000";
- }
- // request
- try {
- HttpClient client = new DefaultHttpClient();
- String getURL = "https://api.foursquare.com/v2/venues/search?ll="+LatLng+"&categoryId=4bf58dd8d48988d113951735&radius="+radiusTrue+"&limit=50&oauth_token=RDVPAXVXLRTD1INFNDHTN03H1FADU522KLWWLRECSHYXRDTL&v=20120626";
- HttpGet get = new HttpGet(getURL);
- HttpResponse responseGet = client.execute(get);
- HttpEntity resEntityGet = responseGet.getEntity();
- if (resEntityGet != null) {
- // do something with the response
- response = EntityUtils.toString(resEntityGet);
- Log.i("GET RESPONSE", response);
- //manage data with json
- JSONObject json = new JSONObject(response);
- JSONObject Jresponse = json.getJSONObject("response");
- JSONArray venue = Jresponse.getJSONArray("venues");
- // get Array Length
- LENGTH = venue.length();
- // Create JSONObject for data
- JSONObject[] venueArr = new JSONObject[venue.length()];
- JSONObject[] location = new JSONObject[venue.length()];
- // Set Array Length
- NAME = new String[venue.length()];
- lat = new String[venue.length()];
- lng = new String[venue.length()];
- TYPE = new String[venue.length()];
- ICON = new int[venue.length()];
- DISTANCE = new String[venue.length()];
- //put data to array
- // Set JSONObject before get data
- for(int i=0;i<venue.length();i++){
- venueArr[i] = venue.getJSONObject(i);
- }
- for(int i=0;i<venue.length();i++){
- location[i] = venueArr[i].getJSONObject("location");
- }
- //put data
- for(int i=0;i<venue.length();i++){
- NAME[i] = venueArr[i].getString("name");
- lat[i] = location[i].getString("lat");
- lng[i] = location[i].getString("lng");
- DISTANCE[i] = location[i].getString("distance");
- }
- // ID = venueArr.getString("id");
- // JSONObject location = venueArr.getJSONObject("location");
- // DISTANCE = location.getString("distance");
- // Set type
- for(int i=0;i<venue.length();i++){
- if(NAME[i].contains("bangjak") || NAME[i].contains("Bangjak")|| NAME[i].contains("บางจาก")){
- TYPE[i] = "Bangjak";
- ICON[i] = R.drawable.nbangjak;
- }
- else if(NAME[i].contains("cartex")||NAME[i].contains("Cartex")||NAME[i].contains("คาวเท็ก")||NAME[i].contains("คาวเทก")||NAME[i].contains("คาเท็ก")||NAME[i].contains("คาเท็ก")){
- TYPE[i] = "Cartex";
- ICON[i] = R.drawable.ncartex;
- }
- else if(NAME[i].contains("esso")||NAME[i].contains("Esso")||NAME[i].contains("เอสโซ่")){
- TYPE[i] = "Esso";
- ICON[i] = R.drawable.nesso;
- }
- else if(NAME[i].contains("Greennat")||NAME[i].contains("greennat")||NAME[i].contains("กรีนนัท")){
- TYPE[i] = "Greennat";
- ICON[i] = R.drawable.ngreennat;
- }
- else if(NAME[i].contains("lpg")||NAME[i].contains("LPG")||NAME[i].contains("Lpg")||NAME[i].contains("แอลพีจี")){
- TYPE[i] = "LPG";
- ICON[i] = R.drawable.nlpg;
- }
- else if(NAME[i].contains("pitotas")||NAME[i].contains("Pitotas")||NAME[i].contains("ปิโตรนาส")){
- TYPE[i] = "Pitotas";
- ICON[i] = R.drawable.nbangjak;
- }
- else if(NAME[i].contains("PTT")||NAME[i].contains("ptt")||NAME[i].contains("ปตท")){
- TYPE[i] = "PTT";
- ICON[i] = R.drawable.nptt;
- }
- else if(NAME[i].contains("shell")||NAME[i].contains("Shell")||NAME[i].contains("เชล")){
- TYPE[i] = "Shell";
- ICON[i] = R.drawable.nshell;
- }
- else if(NAME[i].contains("susco")||NAME[i].contains("Susco")||NAME[i].contains("ซัสโก")){
- TYPE[i] = "Susco";
- ICON[i] = R.drawable.nsusco;
- }
- else{
- TYPE[i] = "Other";
- ICON[i] = R.drawable.now;
- }
- }
- }//if
- } catch (Exception e) {
- e.printStackTrace();
- Log.e("SearchVenues", e.getLocalizedMessage());
- }//catch
- }
- public String getName(int index) {
- return NAME[index];
- }
- public String getLat(int index) {
- return lat[index];
- }
- public String getLng(int index) {
- return lng[index];
- }
- .......................................................................................................
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement