Este es el código de muestra de Here API. Pero el problema que tengo es que la ubicación inicial donde se carga el mapa es incorrecta. Lo que necesito es que el mapa se muestre donde estás.

¿Cuál es el método que modifica la posición del mapa?

private MapViewLite mapView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Get a MapViewLite instance from the layout.
    mapView = findViewById(R.id.map_view);
    mapView.onCreate(savedInstanceState);
}

private void loadMapScene() {
    // Load a scene from the SDK to render the map with a map style.
    mapView.getMapScene().loadScene(MapStyle.NORMAL_DAY, new MapScene.LoadSceneCallback() {
        @Override
        public void onLoadScene(@Nullable MapScene.ErrorCode errorCode) {
            if (errorCode == null) {
                mapView.getCamera().setTarget(new GeoCoordinates(52.530932, 13.384915));
                mapView.getCamera().setZoomLevel(14);
            } else {
                Log.d(TAG, "onLoadScene failed: " + errorCode.toString());
            }
        }
    });
}
0
JAOdev 7 may. 2021 a las 20:17

1 respuesta

La mejor respuesta

Este es el fragmento de código que codifica la posición:

mapView.getCamera().setTarget(new GeoCoordinates(52.530932, 13.384915))

En su lugar, establezca las coordenadas para que sean el clic del usuario. Para hacerlo, necesitará rodear ese fragmento de código con un oyente onTouch() y verificar la acción del usuario. Usaré un ImageView como ejemplo. Entonces algo como esto:

imageView.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_DOWN){
            //whatever you want to do
            //to fetch the coordinates of the user's click use event.getX() and event.getY()
        }
        return true;
    }
});
1
CodingChap 7 may. 2021 a las 18:18