рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП Google рдореИрдкреНрд╕ рдПрд╕рдбреАрдХреЗ рдореЗрдВ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛

рдпрд╣ рд▓реЗрдЦ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдкрд╣рд▓реЗ рдЕрдкрдиреЗ рдХрд╛рдо рдореЗрдВ Google рдореИрдкреНрд╕ рдПрд╕рдбреАрдХреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред

рдХрдЯрд░ рдХреЗ рддрд╣рдд, рдирдХреНрд╢реЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рддрд░реАрдХреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдорд╛рд░реНрдХрд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдФрд░ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛, рдирдХреНрд╢реЗ рдкрд░ рдХреИрдорд░рд╛ рд▓реЗ рдЬрд╛рдиреЗ рдХреЗ рддрд░реАрдХреЗ, рдЬрд╝реВрдо рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛, рдПрдХ рдорд╛рд░реНрдЧ рдмрдирд╛рдирд╛ рдФрд░ рдЬрд┐рдпреЛрдХреЛрдбрд┐рдВрдЧред рд╕рд╛рде рд╣реА рд╕реАрдорд╛рдУрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗред

рдЫрд╡рд┐
рд╕реНрд░реЛрдд

рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЕрдиреБрднрд╡ рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рдерд╛, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдЙрдирдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ Google рдорд╛рдирдЪрд┐рддреНрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЛрд░рд┐рдпрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡реЗрджрди рд▓рд┐рдЦрддреЗ рд╕рдордп рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдерд╛ред рддреЛ рд╕рднреА рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдФрд░ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рдХрд╛ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рдЙрд▓реНрд▓реЗрдЦ рдПрдХ рдХреВрд░рд┐рдпрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╣реЛрдЧрд╛ред

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП Google рдореИрдкреНрд╕ рдПрд╕рдбреАрдХреЗ рдЖрдкрдХреЛ рдирд┐рдпрдВрддреНрд░рдг рдмрдЯрди рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рддрдерд╛рдХрдерд┐рдд рдпреВрдЖрдИ рдирд┐рдпрдВрддреНрд░рдг, рдЗрдирдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: рдЗрдВрдбреЛрд░рд▓реЗрд╡рд▓рдкрд┐рдХрд░ - рдЗрдорд╛рд░рддреЛрдВ рдХреА рдордВрдЬрд┐рд▓ рдпреЛрдЬрдирд╛, рдХрдореНрдкрд╛рд╕ - рдПрдХ рдХрдореНрдкрд╛рд╕, рдореЗрд░рд╛ рд╕реНрдерд╛рди рдмрдЯрди - рд╡рд░реНрддрдорд╛рди рд╕реНрдерд╛рди рдкрд░ рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рдЬрд╛рдПрдВ, рдорд╛рдирдЪрд┐рддреНрд░ рдЯреВрд▓рдмрд╛рд░ - рдПрдХ рдорд╛рд░реНрдЧ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдмрдЯрди рдФрд░ рдПрдХ рдирдХреНрд╢рд╛ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЬрд╝реВрдордХрдВрдЯреНрд░реЛрд▓ - рдореИрдк рд╕реНрдХреЗрд▓ рдХреЛ рдмрдврд╝рд╛рдПрдВ рдФрд░ рдШрдЯрд╛рдПрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдореИрдк рдЯреВрд▓рдмрд╛рд░ рдФрд░ рдЬреВрдордХрдВрдЯреНрд░реЛрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдирд┐рдпрдВрддреНрд░рдг рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓рдиреЗ рдореЗрдВ рдЕрдХреНрд╖рдорддрд╛ рдХреЗ рдХрд╛рд░рдг рдХреНрдпрд╛ рдХрдард┐рдирд╛рдЗрдпрд╛рдВ рдЖ рд╕рдХрддреА рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреИрд╕реЗ рдкрд╣реБрдВрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЫрд╡рд┐
рдПрд╕рдбреАрдХреЗ (рдирд╛рд░рдВрдЧреА рдореЗрдВ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ) рдФрд░ рдЙрдирдХреЗ рдХрд╕реНрдЯрдо рд╕рдордХрдХреНрд╖реЛрдВ (рд╣рд░реЗ рд░рдВрдЧ рдореЗрдВ рд╣рд╛рдЗрд▓рд╛рдЗрдЯреЗрдб) рд╕реЗ рдпреВрдЖрдИ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдПрдВред

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд┐рдЪрд▓реЗ рджрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рдПрдХ рдмрдЯрди (рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдПрдХреНрд╢рди рдмрдЯрди) рд╣реИ рдЬреЛ рдбрд┐рд▓реАрд╡рд░реА рдСрд░реНрдбрд░ рдХреЗ рдкрддреЗ рдХреА рд╕реВрдЪреА рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рдмрд╛рдИрдВ рдУрд░ рдХреА рддрд╕реНрд╡реАрд░ рдореЗрдВ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЬрд╝реВрдордХрдВрдЯреНрд░реЛрд▓ рдЗрд╕рдХреЗ рдиреАрдЪреЗ рдереЗ рдФрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рджреБрд░реНрдЧрдо рдереЗред рджрд╛рдИрдВ рдУрд░ рдХреА рддрд╕реНрд╡реАрд░ рдореЗрдВ, рдЬрдм рдЖрдк рдорд╛рд░реНрдХрд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдореИрдк рдЯреВрд▓рдмрд╛рд░ рд╕реЗ рдмрдЯрди рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ, рд╡реЗ рдмрдЯрди рдХреЗ рдиреАрдЪреЗ рднреА рдСрд░реНрдбрд░ рдХреА рд╕реВрдЪреА рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВред

рдирд┐рд░реНрдгрдп

рдкрд╣рд▓реА рдЪреАрдЬ рдЬреЛ рд╣рдореЗрдВ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рд╡рд╣ рдореВрд▓ рдмрдЯрди рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдЫрд┐рдкрд╛рдирд╛ рд╣реИред рдЖрдк onMapReady рдореЗрдердб рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдХреЗ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рддрдм рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдХрд╛рд░реНрдб рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛред

рдмрдЯрди рдЬреВрдо рдирд┐рдпрдВрддреНрд░рдг рди рджрд┐рдЦрд╛рдПрдВ рдФрд░ рдмрдЯрди рдПрд╕рдбреАрдХреЗ рд╕реЗ рдорд╛рд░реНрдЧ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рди рдХрд░реЗрдВ
private GoogleMap mMap; private UiSettings uiSettings; @Override public void onMapReady(GoogleMap googleMap) { mMap = googleMap; uiSettings = mMap.getUiSettings(); //   Zoom uiSettings.setZoomControlsEnabled(false); //         SDK uiSettings.setMapToolbarEnabled(false); } 


рд╣рдо рд▓реЗрдЖрдЙрдЯ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдмрдЯрди рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдЙрдиреНрд╣реЗрдВ рд╣рдорд╛рд░реЗ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

рдЫрд╡рд┐
рдХрд╕реНрдЯрдо рдорд╛рдирдЪрд┐рддреНрд░ рдирд┐рдпрдВрддреНрд░рдг рдмрдЯрди рдХрд╛ рд╕реНрдерд╛рди

рдлрд┐рд░, рдСрдирдХреНрд░рд┐рдПрдЯ рд╡реНрдпреВ рдкрджреНрдзрддрд┐ рдореЗрдВ, рдЙрди рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдЬреЛ рддрдм рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдЬрдм рд╣рдорд╛рд░реЗ рдмрдЯрди рдХреНрд▓рд┐рдХ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ:

рдкреИрдорд╛рдиреЗ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдФрд░ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдЯрди рдХреЗ рд▓рд┐рдП рд╣реИрдВрдбрд▓рд░, рд╕рд╛рде рд╣реА рдПрдХ рдорд╛рд░реНрдЧ рдХрд╛ рдирд┐рд░реНрдорд╛рдг
 private ImageButton imageButtonZoomIn; private ImageButton imageButtonZoomOut; private ImageButton imageButtonRoute; private GoogleMap mMap; @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { //  imageButtonZoomIn = view.findViewById(R.id.imageButtonZoomIn); imageButtonZoomIn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mMap.animateCamera(CameraUpdateFactory.zoomIn()); } }); //  imageButtonZoomOut = view.findViewById(R.id.imageButtonZoomOut); imageButtonZoomOut.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mMap.animateCamera(CameraUpdateFactory.zoomOut()); } }); //      imageButtonRoute = view.findViewById(R.id.imageButtonRoute); imageButtonRoute.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String latitude = String.valueOf(activMarker.getPosition().latitude); String longitude = String.valueOf(activMarker.getPosition().longitude); Uri gmmIntentUri = Uri.parse("google.navigation:q=" + latitude + "," + longitude); Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); mapIntent.setPackage("com.google.android.apps.maps"); try{ if (mapIntent.resolveActivity(Objects.requireNonNull(getActivity()).getPackageManager()) != null) { startActivity(mapIntent); } }catch (NullPointerException e){ Log.e(TAG, "onClick: NullPointerException: Couldn't open map." + e.getMessage() ); Toast.makeText(getActivity(), "Couldn't open map", Toast.LENGTH_SHORT).show(); } } }); } 


рдЪреЗрддрдирдХреИрдорд░рд╛ рд╡рд┐рдзрд┐ рдХреА рдЦрд╝рд╛рд╕рд┐рдпрдд рдпрд╣ рд╣реИ рдХрд┐ рдкреИрдорд╛рдиреЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдмрджрд▓ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рддреБрд░рдВрдд рдирд╣реАрдВ, рдФрд░ рдпрджрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЬрд╝реВрдо рдмрдЯрди рдХреЗ рдПрдиреАрдореЗрд╢рди рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрдм рдЕрдзрд┐рдХрддрдо рдпрд╛ рдиреНрдпреВрдирддрдо рдкреИрдорд╛рдиреЗ рдкрд░ рдкрд╣реБрдВрдЪ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдСрдирдХреИрдорд░реЗрдмрд▓ рд╡рд┐рдзрд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕реЗ рдореИрдк рд╕реНрдХреЗрд▓ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрдиреЗ рдкрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЬреВрдо рдмрдЯрди рдХреЛ рд╕рдХреНрд░рд┐рдп рдФрд░ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рдирд╛
  @Override public void onCameraIdle() { if (mMap.getCameraPosition().zoom == mMap.getMinZoomLevel()){ //  ,     imageButtonZoomOut.setEnabled(false); imageButtonZoomIn.setEnabled(true); }else if (mMap.getCameraPosition().zoom == mMap.getMaxZoomLevel()){ //  ,     imageButtonZoomOut.setEnabled(true); imageButtonZoomIn.setEnabled(false); }else { //       imageButtonZoomOut.setEnabled(true); imageButtonZoomIn.setEnabled(true); } } 


рдХрд┐рд╕реА рдорд╛рд░реНрдХрд░ (рдбреНрд░реИрдЧрд┐рдВрдЧ рдФрд░ рдбреНрд░реЙрдкрд┐рдВрдЧ рдХреЛ рдЫреЛрдбрд╝рдХрд░) рдХреЗ рд╕рд╛рде рдХреЛрдИ рднреА рдХреНрд░рд┐рдпрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдирдпрд╛ рдСрд░реНрдбрд░ рдмрдирд╛рдПрдВ, рдПрдХ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рд░рдЦреЗ рдорд╛рд░реНрдХрд░ рдХреЛ рд╣рдЯрд╛рдПрдВ, рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ рдСрд░реНрдбрд░ рдкрд░ рдЬрд╛рдПрдВ рдпрд╛ рдСрд░реНрдбрд░ рдореЗрдВ рдмрддрд╛рдП рдЧрдП рдлреЛрди рдХреЛ рд▓реЗрдЖрдЙрдЯ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдХрдВрдЯреНрд░реЛрд▓ рдмрдЯрди рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдЕрдкрдиреЗ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВред

рдЫрд╡рд┐
рдорд╛рд░реНрдХрд░ рдирд┐рдпрдВрддреНрд░рдг рдмрдЯрди

рдПрдХ рдорд╛рд░реНрдХрд░ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рдХрд╕реНрдЯрдо рдирд┐рдпрдВрддреНрд░рдг рдмрдЯрди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рдПрдХ рдХреНрд▓рд┐рдХ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг
 private GoogleMap mMap; private ImageButton imageButtonRoute; @Override public void onMapReady(GoogleMap googleMap) { mMap = googleMap; mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() { @Override public void onMapClick(LatLng latLng) { imageButtonRoute.setVisibility(View.GONE); if (myMarker !=null){ //   myMarker.remove(); } //    myMarker = mMap.addMarker(new MarkerOptions() .position(latLng) //   .title(Objects.requireNonNull(getContext()).getString(R.string.title_on_marker_to_new_order)) // true ,         .draggable(true)); myMarker.setTag(null); //    imageButtonAddMarker.setVisibility(View.VISIBLE); imageButtonRemoveMarker.setVisibility(View.VISIBLE); } }); } 


рдЬрдм рд╣рдо рдПрдб рдСрд░реНрдбрд░ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╣рдо рд╕рдВрдХреЗрдд рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
 private ImageButton imageButtonAddMarker; private Marker myMarker; @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { imageButtonAddMarker = view.findViewById(R.id.imageButtonAddMarker); imageButtonAddMarker.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (myMarker !=null && myMarker.getTag()==null) { //    imageButtonAddMarker.setVisibility(View.GONE); imageButtonRemoveMarker.setVisibility(View.GONE); //  ,          listener.openOrderContentsFragmentFromMap(null, myMarker); //   ,     myMarker.remove(); } } }); } 


рдПрдХ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдХрд╛рд░реНрдб рдкрд░ рдорд╛рд░реНрдХрд░ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд╕рдбреАрдХреЗ рдореЗрдВ рдХреЛрдИ рдмрдЯрди рдирд╣реАрдВ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдмрдЯрди рднреА рдмрдирд╛рддреЗ рд╣реИрдВ:

рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдХрд┐ рд╣рдо рдорд╛рд░реНрдХрд░ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬрдм рд╣рдо рдбрд┐рд▓реАрдЯ рдорд╛рд░реНрдХрд░ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ
 private ImageButton imageButtonRemoveMarker; private Marker myMarker; @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { imageButtonRemoveMarker = view.findViewById(R.id.imageButtonRemoveMarker); imageButtonRemoveMarker.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (myMarker !=null && myMarker.getTag()==null){ //   imageButtonAddMarker.setVisibility(View.GONE); imageButtonRemoveMarker.setVisibility(View.GONE); //    myMarker.remove(); } } }); } 


рдорд╛рд░реНрдХрд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдкрд░, рдЗрд╕рдХрд╛ рд╢реАрд░реНрд╖рдХ рдЦреБрд▓ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рд╕реЗ рдХрд┐рд╕реА рднреА рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрдм рдореИрдВ рдПрдХ рдирдП рдорд╛рд░реНрдХрд░ рдХреЗ рд╢реАрд░реНрд╖рдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдХреВрд░рд┐рдпрд░ рдХреЛ рдбрд┐рд▓реАрд╡рд░реА рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдСрд░реНрдбрд░ рдмрдирд╛рддрд╛ рд╣реВрдВ, рдФрд░ рдореМрдЬреВрджрд╛ рдСрд░реНрдбрд░ рдХреЗ рдорд╛рд░реНрдХрд░ рдкрд░ рдореИрдВ рдПрдХ рд╕реВрдЪреА рд╕рд╣рд┐рдд рд╡рд┐рд╕реНрддреГрдд рдбрд┐рд▓реАрд╡рд░реА рдЬрд╛рдирдХрд╛рд░реА рдЦреЛрд▓рддрд╛ рд╣реВрдВред рдорд╛рд▓ред

рдорд╛рд░реНрдХрд░ рдЬрд╛рдирдХрд╛рд░реА рд╡рд┐рдВрдбреЛ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдкрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╕реЗрдЯ рдХрд░реЗрдВ
 private GoogleMap mMap; @Override public void onMapReady(GoogleMap googleMap) { mMap = googleMap; mMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() { @Override public void onInfoWindowClick(Marker marker) { if (marker.getTag()==null) { //    : //      listener.openOrderContentsFragmentFromMap(null, marker); if (myMarker != null) { //   ,     myMarker.remove(); } } else { //     : //         listener.openOrderContentsFragment((Long) marker.getTag()); } } }); } 


рдХрдИ рдорд╛рд░реНрдХрд░реЛрдВ (рдЖрджреЗрд╢реЛрдВ рдХреА рд╕реВрдЪреА рдкрдврд╝реЗрдВ) рдХреЛ рдХрд╛рд░реНрдб рдкрд░ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдПрдХ рдорд╛рд░реНрдХрд░ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдореЗрдВ рднрд┐рдиреНрди рдирд╣реАрдВ рд╣реИред рдПрдХ рдорд╛рд░реНрдХрд░ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ (рд╕реНрдерд┐рддрд┐), рдПрдХ рд╢реАрд░реНрд╖рдХ (рд╢реАрд░реНрд╖рдХ), рдПрдХ рд╢реАрд░реНрд╖рдХ рдХреЗ рддрд╣рдд рдЫреЛрдЯрд╛ рдкрд╛рда (рд╕реНрдирд┐рдкреЗрдЯ) рдФрд░ рдПрдХ рдЯреИрдЧ (рд╕реЗрдЯрдЯреИрдЧ) рд╣реЛрддрд╛ рд╣реИ - рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рдХрдИ рдорд╛рд░реНрдХрд░реЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЫрд╡рд┐
рдХрдИ рдорд╛рдирдЪрд┐рддреНрд░ рдорд╛рд░реНрдХрд░

рджрд┐рдП рдЧрдП рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рд╕рд╛рде рдХрдИ рдорд╛рд░реНрдХрд░ рдЦреАрдВрдЪрдирд╛
 public void drawListMarker(List<InfoMarker> latLngList) { if (latLngList == null || latLngList.size() == 0) { return; } //    mMap.clear(); LatLngBounds.Builder builder = new LatLngBounds.Builder(); boolean fiarstGreean = true; int count = 1; for (InfoMarker latLng : latLngList) { BitmapDescriptor icon; if (fiarstGreean){ //      //..           icon = BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN); fiarstGreean = false; } else { icon = latLng.getIcon(); } //      mMap.addMarker(new MarkerOptions().position(latLng.getLatLng()).title(String.valueOf(count)).snippet(latLng.getTitle()).icon(icon)).setTag(latLng.getIdOrder()); builder.include(latLng.getLatLng()); count++; } //       CameraUpdate cameraUpdate; if (loaded) { cameraUpdate = CameraUpdateFactory .newLatLngBounds(builder.build(), 100); } else { cameraUpdate = CameraUpdateFactory.newLatLng(builder.build().getCenter()); } mMap.moveCamera(cameraUpdate); mMap.animateCamera(CameraUpdateFactory.zoomIn()); mMap.animateCamera(CameraUpdateFactory.zoomTo(10), 1000, null); } 


рдЬрд┐рдпреЛрдХреЛрдбрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрдж

рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдкрддреЗ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдпреЛрдХреЛрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рдПрдХ рдорд╛рд░реНрдХрд░ рд▓рдЧрд╛рдирд╛ рдФрд░ рдРрдб рдСрд░реНрдбрд░ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдирд╛, рд╣рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рдмрд┐рдВрджреБ рдХреЗ рднреМрдЧреЛрд▓рд┐рдХ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдорд┐рд▓рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреНред рдЕрдХреНрд╖рд╛рдВрд╢ рдФрд░ рджреЗрд╢рд╛рдВрддрд░ред рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдорд╛рдирд╡-рдкрдардиреАрдп рд░реВрдк рдореЗрдВ рдкрддрд╛ рджрд┐рдЦрд╛рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рдЕрд░реНрдерд╛рдд, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рджреЗрд╢, рд╢рд╣рд░, рд╕рдбрд╝рдХ, рдШрд░ред

Google рдореИрдкреНрд╕ SDK рдореЗрдВ рдЬрд┐рдпреЛрдХреЛрдбрд░ рд╡рд░реНрдЧ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рдХреА getFromLocation рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдЖрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдкрд░ рдкрддреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпреВрдЖрдИ рдереНрд░реЗрдб рдХреЛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЕрд╡рд░реБрджреНрдз рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЦрд╛рд╕рдХрд░ рдЕрдЧрд░ рдЗрдВрдЯрд░рдиреЗрдЯ рдзреАрдорд╛ рдпрд╛ рджреБрд░реНрдЧрдо рд╣реИ, рдХреЙрд▓ рджреНрд╡рд╛рд░рд╛ - рд╣рдо RJJJ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ:

рдЫрд╡рд┐
рднреМрдЧреЛрд▓рд┐рдХ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рдкрд░рд┐рдгрд╛рдореА рдмрд┐рдВрджреБ рдкрддрд╛

Google рдЬрд┐рдпреЛрдХреЛрдб рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛ рдЖрд░рдПрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
 LatLng position = myMarker.getPosition(); Location location = new Location("new"); location.setLatitude(position.latitude); location.setLongitude(position.longitude); LocationRepostiory locationRepostiory = new LocationRepostiory(context, location); locationRepostiory.getLastLocation(). observeOn(SchedulerProvider.getInstance().ui()). subscribeOn(SchedulerProvider.getInstance().computation()). subscribe(locationString -> { if(editTextAddress.length()==0){ //       ,      editTextAddress.setText(locationString); } }, throwable -> { }); 


LocationRepostiory рд╡рд░реНрдЧ рдХрд╛ рдкрд╛рда рдЬрд┐рд╕рдореЗрдВ рд░рд┐рд╡рд░реНрд╕ рдЬрд┐рдпреЛрдХреЛрдбрд┐рдВрдЧ рд╣реЛрддрд╛ рд╣реИ
 public class LocationRepostiory { private Context context; private Location location; public LocationRepostiory(Context context, Location location) { this.context = context; this.location = location; } public Single<String> getLastLocation() { return Single.create(this::subscribeOnLocation); } private void subscribeOnLocation(SingleEmitter<String> e) { Geocoder geocoder = new Geocoder(context, Locale.getDefault()); String errorMessage = ""; List<Address> addresses = null; try { //     addresses = geocoder.getFromLocation( location.getLatitude(), location.getLongitude(), // In this sample, get just a single address. 1); } catch (IOException ioException) { //,      I/O. errorMessage = context.getString(R.string.service_not_available); Log.e(TAG, errorMessage, ioException); } catch (IllegalArgumentException illegalArgumentException) { // ,       errorMessage = context.getString(R.string.invalid_lat_long_used); Log.e(TAG, errorMessage + ". " + "Latitude = " + location.getLatitude() + ", Longitude = " + location.getLongitude(), illegalArgumentException); } //  ,     if (addresses == null || addresses.size() == 0) { if (errorMessage.isEmpty()) { errorMessage = context.getString(R.string.no_address_found); Log.e(TAG, errorMessage); } } else { Address address = addresses.get(0); ArrayList<String> addressFragments = new ArrayList<String>(); //      . for (int i = 0; i <= address.getMaxAddressLineIndex(); i++) { e.onSuccess(address.getAddressLine(i)); } } } } 

Source: https://habr.com/ru/post/hi484100/


All Articles