Добавить пользовательский маркер на Google Карты в Android - PullRequest
0 голосов
/ 27 мая 2020

У меня есть приложение Android, созданное с помощью java с активностью Google Maps, и я хотел заменить рынок «сидней по умолчанию» новым маркером с LatLng, который я уступаю по параметру, но я не знаю как. Я пробовал это =>

public class MapsActivity2 extends FragmentActivity implements OnMapReadyCallback {

    private GoogleMap mMap;
    private double latitud;
    private double longitud;
private LatLng ubicacion;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps2);
        // Obtain the SupportMapFragment and get notified when the map is ready to be used.
        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
    }


    @Override
    public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;

        // Add a marker in Sydney and move the camera
        LatLng sydney = ubicacion;
        mMap.addMarker(new MarkerOptions().position(sydney).title("Ubicacion Gasto"));
        mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
    }

    public void setearUbicacion(double lat, double longi){
         ubicacion = new LatLng(lat, longi);
    }
}

Но переменная «ubicacion» все равно установлена ​​на null. Я не хочу менять стиль маркера, я хочу дать методу onMapReady параметр LatLng by вместо того, чтобы настраивать его непосредственно в классе, как показано во всех примерах.

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 27 мая 2020
public void onMapReady(GoogleMap googleMap) {
            mMap = googleMap;

            setLatLng(1.0,1.0);
   }

Попробуй. Вы должны вызвать метод setLatLng в onMapReady

public void setLatLng(double latitude , double longitude){
        LatLng location = new LatLng(latitude, longitude);
        mMap.addMarker(new MarkerOptions().position(location).title("Marker in Your Location"));
        mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(location,15));
    }
0 голосов
/ 27 мая 2020

Рынок? или маркер? если Маркер, вы можете попробовать этот код

map.addMarker(new MarkerOptions()
   .position(new LatLng(latitude, longitude))                          
   .title("Title")
   .snippet("Snippet")
   .icon(BitmapDescriptorFactory.fromResource(R.drawable.my_icon)));

просто добавьте .icon(BitmapDescriptorFactory.fromResource(R.drawable.my_icon))

или измените цвета маркера по умолчанию .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...