在Android中添加自定义标记到谷歌地图

问题描述 投票:0回答:1

我有一个用java做的Android应用,有一个谷歌地图活动,我想用一个新的标记替换 "默认的Sidney "市场,用我通过参数给出的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 "变量无论如何都被设置为空。我不想改变标记的样式,我想通过参数给onMapReady方法提供LatLng,而不是像所有的例子那样直接在类上设置。

先谢谢你了

java android maps
1个回答
0
投票
public void onMapReady(GoogleMap googleMap) {
            mMap = googleMap;

            setLatLng(1.0,1.0);
   }

试试这个。你必须在onMapReady中调用setLatLng方法。

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
投票

市场或Marker,如果是Marker,你可以试试这个代码。

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))

© www.soinside.com 2019 - 2024. All rights reserved.