summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntonio Zugaldia <antonio@mapbox.com>2016-01-13 17:22:14 -0500
committerBrad Leege <bleege@gmail.com>2016-01-19 13:53:55 -0500
commit9672f2ba505587927f92112ca892258b28a721a3 (patch)
tree076632facedce718fe4e7b47e3823af8f8f55199
parentfa84283a9d2b1b38332012abc989f992d29d31f0 (diff)
downloadqtlocation-mapboxgl-9672f2ba505587927f92112ca892258b28a721a3.tar.gz
sample geocoder activity
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/build.gradle5
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml3
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/GeocoderActivity.java158
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MainActivity.java6
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_geocoder.xml27
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_drawer.xml15
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml1
7 files changed, 208 insertions, 7 deletions
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/build.gradle b/platform/android/MapboxGLAndroidSDKTestApp/build.gradle
index 815fe8d00e..41d75cc0b0 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/build.gradle
+++ b/platform/android/MapboxGLAndroidSDKTestApp/build.gradle
@@ -86,6 +86,11 @@ dependencies {
transitive=true
}
+ // Geocoder SDK
+ compile ('com.mapbox.mapboxsdk:mapbox-android-geocoder:1.0.0@aar'){
+ transitive=true
+ }
+
// Testing dependencies
testCompile 'junit:junit:4.12'
testCompile 'org.mockito:mockito-core:1.10.19'
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml
index 3d5862b511..d5a6df9566 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml
@@ -67,6 +67,9 @@
android:name=".DirectionsActivity"
android:label="@string/activity_directions" />
<activity
+ android:name=".GeocoderActivity"
+ android:label="@string/activity_geocoder" />
+ <activity
android:name=".DoubleMapActivity"
android:label="@string/activity_double_map" />
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/GeocoderActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/GeocoderActivity.java
new file mode 100644
index 0000000000..200ca8ac0e
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/GeocoderActivity.java
@@ -0,0 +1,158 @@
+package com.mapbox.mapboxsdk.testapp;
+
+import android.os.Bundle;
+import android.support.v7.app.ActionBar;
+import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.Toolbar;
+import android.util.Log;
+import android.widget.TextView;
+
+import com.mapbox.geocoder.GeocoderCriteria;
+import com.mapbox.geocoder.MapboxGeocoder;
+import com.mapbox.geocoder.service.models.GeocoderFeature;
+import com.mapbox.geocoder.service.models.GeocoderResponse;
+import com.mapbox.mapboxsdk.annotations.MarkerOptions;
+import com.mapbox.mapboxsdk.constants.Style;
+import com.mapbox.mapboxsdk.geometry.LatLng;
+import com.mapbox.mapboxsdk.utils.ApiAccess;
+import com.mapbox.mapboxsdk.views.MapView;
+
+import java.util.List;
+
+import retrofit.Callback;
+import retrofit.Response;
+import retrofit.Retrofit;
+
+public class GeocoderActivity extends AppCompatActivity {
+
+ private static final String LOG_TAG = "GeocoderActivity";
+
+ private MapView mapView;
+ private TextView textView;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_geocoder);
+
+ Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
+ setSupportActionBar(toolbar);
+
+ ActionBar actionBar = getSupportActionBar();
+ if (actionBar != null) {
+ actionBar.setDisplayHomeAsUpEnabled(true);
+ actionBar.setDisplayShowHomeEnabled(true);
+ }
+
+ textView = (TextView) findViewById(R.id.message);
+ setMessage("Tap the map to trigger the geocoder.");
+
+ LatLng dupontCircle = new LatLng(38.90962, -77.04341);
+
+ mapView = (MapView) findViewById(R.id.mapView);
+ mapView.setAccessToken(ApiAccess.getToken(this));
+ mapView.setStyleUrl(Style.MAPBOX_STREETS);
+ mapView.setCenterCoordinate(dupontCircle);
+ mapView.setZoomLevel(15);
+ mapView.onCreate(savedInstanceState);
+
+ mapView.setOnMapClickListener(new MapView.OnMapClickListener() {
+ @Override
+ public void onMapClick(LatLng point) {
+ setMessage("Geocoding...");
+ mapView.removeAllAnnotations();
+ mapView.addMarker(new MarkerOptions()
+ .position(point)
+ .title("Your finger is here"));
+ geocode(point);
+ }
+ });
+ }
+
+ @Override
+ protected void onStart() {
+ super.onStart();
+ mapView.onStart();
+ }
+
+ @Override
+ protected void onStop() {
+ super.onStop();
+ mapView.onStop();
+ }
+
+ @Override
+ public void onPause() {
+ super.onPause();
+ mapView.onPause();
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ mapView.onResume();
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ mapView.onDestroy();
+ }
+
+ @Override
+ protected void onSaveInstanceState(Bundle outState) {
+ super.onSaveInstanceState(outState);
+ mapView.onSaveInstanceState(outState);
+ }
+
+ /*
+ * Forward geocoding
+ */
+
+ private void geocode(LatLng point) {
+ MapboxGeocoder client = new MapboxGeocoder.Builder()
+ .setAccessToken(ApiAccess.getToken(this))
+ .setCoordinates(point.getLongitude(), point.getLatitude())
+ .setType(GeocoderCriteria.TYPE_POI)
+ .build();
+
+ client.enqueue(new Callback<GeocoderResponse>() {
+ @Override
+ public void onResponse(Response<GeocoderResponse> response, Retrofit retrofit) {
+ List<GeocoderFeature> results = response.body().getFeatures();
+ if (results.size() > 0) {
+ String placeName = results.get(0).getPlaceName();
+ setSuccess(placeName);
+ } else {
+ setMessage("No results.");
+ }
+ }
+
+ @Override
+ public void onFailure(Throwable t) {
+ setError(t.getMessage());
+ }
+ });
+
+ }
+
+ /*
+ * Update text view
+ */
+
+ private void setMessage(String message) {
+ Log.d(LOG_TAG, "Message: " + message);
+ textView.setText(message);
+ }
+
+ private void setSuccess(String placeName) {
+ Log.d(LOG_TAG, "Place name: " + placeName);
+ textView.setText(placeName);
+ }
+
+ private void setError(String message) {
+ Log.e(LOG_TAG, "Error: " + message);
+ textView.setText("Error: " + message);
+ }
+
+}
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MainActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MainActivity.java
index a6920567fe..6451046448 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MainActivity.java
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MainActivity.java
@@ -182,8 +182,6 @@ public class MainActivity extends AppCompatActivity {
mFpsTextView = (TextView) findViewById(R.id.view_fps);
mFpsTextView.setText("");
- mMapView.setRotateEnabled(false);
-
mLocationFAB = (FloatingActionButton) findViewById(R.id.locationFAB);
mLocationFAB.setOnClickListener(new View.OnClickListener() {
@Override
@@ -422,6 +420,10 @@ public class MainActivity extends AppCompatActivity {
}
return true;
+ case R.id.action_geocoder:
+ startActivity(new Intent(getApplicationContext(), GeocoderActivity.class));
+ return true;
+
default:
return changeMapStyle(menuItem.getItemId());
}
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_geocoder.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_geocoder.xml
new file mode 100644
index 0000000000..ce0802385a
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_geocoder.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+
+ <android.support.v7.widget.Toolbar
+ android:id="@+id/toolbar"
+ android:layout_width="match_parent"
+ android:layout_height="?attr/actionBarSize"
+ android:background="@color/primary"
+ android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />
+
+ <com.mapbox.mapboxsdk.views.MapView
+ android:id="@+id/mapView"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="5" />
+
+ <TextView
+ android:id="@+id/message"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:gravity="center" />
+
+</LinearLayout>
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_drawer.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_drawer.xml
index 54be851629..2fd9e6c757 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_drawer.xml
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_drawer.xml
@@ -78,11 +78,10 @@
android:icon="@drawable/ic_tilt"
android:title="@string/action_tilt" />
- <item
- android:id="@+id/action_camera"
- android:checkable="false"
- android:icon="@drawable/ic_transform_24dp"
- android:title="@string/action_camera" />
+ <item android:id="@+id/action_camera"
+ android:checkable="false"
+ android:icon="@drawable/ic_transform_24dp"
+ android:title="@string/action_camera"/>
<item
android:id="@+id/action_map_fragment"
@@ -162,6 +161,12 @@
android:icon="@drawable/ic_dns_24dp"
android:title="@string/action_double_mapview" />
+ <item
+ android:id="@+id/action_geocoder"
+ android:checkable="false"
+ android:icon="@drawable/ic_directions"
+ android:title="@string/activity_geocoder" />
+
</menu>
</item>
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml
index 6b30fa7ac3..6caf0f7df7 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml
@@ -20,6 +20,7 @@
<string name="activity_animate_coordinate_change">Animate Coordinate Change</string>
<string name="activity_custom_layer">Custom Layer</string>
<string name="activity_directions">Directions Activity</string>
+ <string name="activity_geocoder">Geocoder Activity</string>
<string name="activity_double_map">Double Map Activity</string>
<string name="navdrawer_menu_title_mainactivity_controls">Main Activity Controls</string>