Skip to content
This repository was archived by the owner on Aug 8, 2023. It is now read-only.

Commit f19413e

Browse files
committed
[android] - update symbol layer example with changing symbol location
1 parent d73e33e commit f19413e

File tree

3 files changed

+41
-7
lines changed

3 files changed

+41
-7
lines changed

platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/ZoomFunctionSymbolLayerActivity.java

+32-7
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import android.os.Bundle;
55
import android.support.annotation.NonNull;
66
import android.support.v7.app.AppCompatActivity;
7+
import android.view.Menu;
8+
import android.view.MenuItem;
79

810
import com.google.gson.JsonObject;
911
import com.mapbox.mapboxsdk.geometry.LatLng;
@@ -48,6 +50,9 @@ public class ZoomFunctionSymbolLayerActivity extends AppCompatActivity {
4850
private MapboxMap mapboxMap;
4951
private GeoJsonSource source;
5052

53+
private boolean isInitialPosition = true;
54+
private boolean isSelected = false;
55+
5156
@Override
5257
public void onCreate(Bundle savedInstanceState) {
5358
super.onCreate(savedInstanceState);
@@ -59,15 +64,15 @@ public void onCreate(Bundle savedInstanceState) {
5964
@Override
6065
public void onMapReady(@NonNull final MapboxMap map) {
6166
mapboxMap = map;
62-
updateSource(false);
67+
updateSource();
6368
addLayer();
6469
addMapClickListener();
6570
}
6671
});
6772
}
6873

69-
private void updateSource(boolean selected) {
70-
FeatureCollection featureCollection = createFeatureCollection(selected);
74+
private void updateSource() {
75+
FeatureCollection featureCollection = createFeatureCollection();
7176
if (source != null) {
7277
source.setGeoJson(featureCollection);
7378
} else {
@@ -76,11 +81,15 @@ private void updateSource(boolean selected) {
7681
}
7782
}
7883

79-
private FeatureCollection createFeatureCollection(boolean selected) {
80-
Point point = Point.fromCoordinates(Position.fromCoordinates(-74.016181, 40.701745));
84+
private FeatureCollection createFeatureCollection() {
85+
Position position = isInitialPosition
86+
? Position.fromCoordinates(-74.01618140, 40.701745)
87+
: Position.fromCoordinates(-73.988097, 40.749864);
88+
89+
Point point = Point.fromCoordinates(position);
8190
Feature feature = Feature.fromGeometry(point);
8291
JsonObject properties = new JsonObject();
83-
properties.addProperty(KEY_PROPERTY_SELECTED, selected);
92+
properties.addProperty(KEY_PROPERTY_SELECTED, isSelected);
8493
feature.setProperties(properties);
8594
return FeatureCollection.fromFeatures(new Feature[] {feature});
8695
}
@@ -119,14 +128,30 @@ public void onMapClick(@NonNull LatLng point) {
119128
if (!featureList.isEmpty()) {
120129
Feature feature = featureList.get(0);
121130
boolean isSelected = feature.getBooleanProperty(KEY_PROPERTY_SELECTED);
122-
updateSource(!isSelected);
131+
ZoomFunctionSymbolLayerActivity.this.isSelected = !isSelected;
132+
updateSource();
123133
} else {
124134
Timber.e("No features found");
125135
}
126136
}
127137
});
128138
}
129139

140+
@Override
141+
public boolean onCreateOptionsMenu(Menu menu) {
142+
getMenuInflater().inflate(R.menu.menu_symbols, menu);
143+
return true;
144+
}
145+
146+
@Override
147+
public boolean onOptionsItemSelected(MenuItem item) {
148+
if (mapboxMap != null && item.getItemId() == R.id.menu_action_change_location) {
149+
isInitialPosition = !isInitialPosition;
150+
updateSource();
151+
}
152+
return super.onOptionsItemSelected(item);
153+
}
154+
130155
@Override
131156
protected void onStart() {
132157
super.onStart();
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<menu xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:app="http://schemas.android.com/apk/res-auto">
4+
<item
5+
android:id="@+id/menu_action_change_location"
6+
android:title="@string/menuitem_change_location"
7+
app:showAsAction="never"/>
8+
</menu>

platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/actions.xml

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
<string name="menuitem_title_change_location_source_mock">Change to mock location source</string>
1212
<string name="menuitem_title_change_location_source_null">Reset location source to null</string>
1313
<string name="menuitem_change_icon_overlap">Toggle icon overlap</string>
14+
<string name="menuitem_change_location">Change location</string>
1415
<string name="button_camera_move">Move</string>
1516
<string name="button_camera_ease">Ease</string>
1617
<string name="button_camera_animate">Animate</string>

0 commit comments

Comments
 (0)