У меня есть проблема здесь, пожалуйста. Я хочу рассчитать расстояние между двумя точками на карте Google [сделано в действии], мне нужно это сделать, учитывая тот факт, что моя карта Google размещена во фрагменте, и этот фрагмент используется в навигационном ящике
Я пробовал этот код. он отлично работает, когда карта находится в действии.
- https://www.youtube.com/watch?v=CCZPUeY94MU
мой фрагмент находится в ящике навигации, и он все меняет ...
Фрагмент моей карты
import android.app.ProgressDialog;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.design.widget.BottomSheetBehavior;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
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 com.google.android.gms.maps.model.Polyline;
import org.w3c.dom.Text;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import static java.lang.String.format;
/**
* A simple {@link Fragment} subclass.
*/
public class MapFragment extends Fragment implements OnMapReadyCallback {
GoogleMap map;
public MapFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View v = inflater.inflate(R.layout.fragment_map, container, false);
return v;
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
SupportMapFragment mapfragment = (SupportMapFragment)getChildFragmentManager().findFragmentById(R.id.map1);
mapfragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
map = googleMap;
LatLng town = new LatLng(3.8468, 11.5091);
map.addMarker(new MarkerOptions().position(town));
// mMap.moveCamera(CameraUpdateFactory.newLatLng(town));
float zoomLevel = 16.0f;
map.moveCamera(CameraUpdateFactory.newLatLngZoom(town, zoomLevel));
//Log.d("Arg0 onMapready", latitude + "-" + longitude);
//Destination l = new Destination(format("%s", longitude), format("%s", latitude));
//address.add(l);
//saveData(address);
map.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
@Override
public void onMapClick(LatLng arg0) {
// TODO Auto-generated method stub
Log.e("Arg0 onMapready", arg0.latitude + "-" + arg0.longitude);
AddMapBottomDialogFragment bottomSheetDialog = AddMapBottomDialogFragment.newInstance();
bottomSheetDialog.show(getFragmentManager(), "Custom Bottom Sheet");
}
});
}
}