11package com .mapbox .services .android .testapp .turf ;
22
3+ import android .os .Bundle ;
4+ import android .support .annotation .NonNull ;
5+ import android .support .design .widget .Snackbar ;
36import android .support .v7 .app .AppCompatActivity ;
7+ import android .support .v7 .widget .Toolbar ;
8+ import android .view .Menu ;
9+ import android .view .MenuItem ;
10+ import android .view .View ;
11+
12+ import com .mapbox .mapboxsdk .annotations .Marker ;
13+ import com .mapbox .mapboxsdk .annotations .MarkerViewOptions ;
14+ import com .mapbox .mapboxsdk .geometry .LatLng ;
15+ import com .mapbox .mapboxsdk .maps .MapView ;
16+ import com .mapbox .mapboxsdk .maps .MapboxMap ;
17+ import com .mapbox .mapboxsdk .maps .OnMapReadyCallback ;
18+ import com .mapbox .services .android .testapp .R ;
19+ import com .mapbox .services .android .testapp .Utils ;
20+ import com .mapbox .services .commons .geojson .Point ;
21+ import com .mapbox .services .commons .models .Position ;
22+ import com .mapbox .services .commons .turf .TurfConstants ;
23+ import com .mapbox .services .commons .turf .TurfException ;
24+ import com .mapbox .services .commons .turf .TurfMeasurement ;
425
526public class TurfDistanceActivity extends AppCompatActivity {
627
28+ private MapView mapView ;
29+ private MapboxMap map ;
30+ private Marker distanceMarker ;
31+
32+ private Position cadillacHotelPosition = Position .fromCoordinates (-118.479852 , 33.993898 );
33+ private String units = TurfConstants .UNIT_MILES ;
34+
35+ private View container ;
36+
37+ @ Override
38+ protected void onCreate (Bundle savedInstanceState ) {
39+ super .onCreate (savedInstanceState );
40+ setContentView (R .layout .activity_turf_distance );
41+
42+
43+ container = findViewById (R .id .turf_distance_map_container );
44+
45+ Toolbar toolbar = (Toolbar ) findViewById (R .id .toolbar );
46+ setSupportActionBar (toolbar );
47+
48+ getSupportActionBar ().setDisplayHomeAsUpEnabled (true );
49+
50+
51+ mapView = (MapView ) findViewById (R .id .mapView );
52+ mapView .setAccessToken (Utils .getMapboxAccessToken (this ));
53+ mapView .onCreate (savedInstanceState );
54+ mapView .getMapAsync (new OnMapReadyCallback () {
55+ @ Override
56+ public void onMapReady (MapboxMap mapboxMap ) {
57+
58+ map = mapboxMap ;
59+
60+ distance ();
61+ }
62+ });
63+ }
64+
65+ @ Override
66+ public void onResume () {
67+ super .onResume ();
68+ mapView .onResume ();
69+ }
70+
71+ @ Override
72+ public void onPause () {
73+ super .onPause ();
74+ mapView .onPause ();
75+ }
76+
77+ @ Override
78+ public void onLowMemory () {
79+ super .onLowMemory ();
80+ mapView .onLowMemory ();
81+ }
82+
83+ @ Override
84+ protected void onDestroy () {
85+ super .onDestroy ();
86+ mapView .onDestroy ();
87+ }
88+
89+ @ Override
90+ protected void onSaveInstanceState (Bundle outState ) {
91+ super .onSaveInstanceState (outState );
92+ mapView .onSaveInstanceState (outState );
93+ }
94+
95+ @ Override
96+ public boolean onCreateOptionsMenu (Menu menu ) {
97+ getMenuInflater ().inflate (R .menu .menu_turf_units , menu );
98+ return super .onCreateOptionsMenu (menu );
99+ }
100+
101+ @ Override
102+ public boolean onOptionsItemSelected (MenuItem item ) {
103+ switch (item .getItemId ()) {
104+ case R .id .action_miles :
105+ units = TurfConstants .UNIT_MILES ;
106+ return true ;
107+ case R .id .action_nauticalmiles :
108+ units = TurfConstants .UNIT_NAUTICAL_MILES ;
109+ return true ;
110+ case R .id .action_kilometers :
111+ units = TurfConstants .UNIT_KILOMETERS ;
112+ return true ;
113+ case R .id .action_radians :
114+ units = TurfConstants .UNIT_RADIANS ;
115+ return true ;
116+ case R .id .action_degrees :
117+ units = TurfConstants .UNIT_DEGREES ;
118+ return true ;
119+ case R .id .action_inches :
120+ units = TurfConstants .UNIT_INCHES ;
121+ return true ;
122+ case R .id .action_yards :
123+ units = TurfConstants .UNIT_YARDS ;
124+ return true ;
125+ case R .id .action_meters :
126+ units = TurfConstants .UNIT_METERS ;
127+ return true ;
128+ default :
129+ return super .onOptionsItemSelected (item );
130+ }
131+
132+ }
133+
134+ private void distance () {
135+
136+ map .addMarker (new MarkerViewOptions ()
137+ .position (new LatLng (cadillacHotelPosition .getLatitude (), cadillacHotelPosition .getLongitude ()))
138+ .title ("point 1" ));
139+
140+ Snackbar .make (container , "Click map anywhere to calculate distance" , Snackbar .LENGTH_INDEFINITE ).show ();
141+
142+ map .setOnMapClickListener (new MapboxMap .OnMapClickListener () {
143+ @ Override
144+ public void onMapClick (@ NonNull LatLng point ) {
145+ if (distanceMarker != null ) map .removeMarker (distanceMarker );
146+
147+ distanceMarker = map .addMarker (new MarkerViewOptions ()
148+ .position (point )
149+ .title ("point 2" ));
150+
151+ double distance = 0 ;
152+ try {
153+ distance = TurfMeasurement .distance (Point .fromCoordinates (cadillacHotelPosition ), Point .fromCoordinates (Position .fromCoordinates (point .getLongitude (), point .getLatitude ())), units );
154+ } catch (TurfException e ) {
155+ e .printStackTrace ();
156+ }
157+ Snackbar .make (container , "Distance = " + distance + " " + units , Snackbar .LENGTH_INDEFINITE ).show ();
158+ }
159+ });
160+ }
7161}
0 commit comments