MapConductor React SDK Samples

Diseño del mapa | MapLibre | MapConductor React SDK

Ejemplo de Diseño del mapa de MapConductor React SDK con MapLibre.

Este ejemplo interactivo muestra Diseño del mapa mediante la abstracción de MapConductor sobre MapLibre.

Ejemplo de código

import { useState } from 'react';
import { createGeoPoint, createMapCameraPosition } from '@mapconductor/js-sdk-core';
import { MapLibreDesign, MapLibreMapView2D, useMapLibreViewState } from '@mapconductor/react-for-maplibre';


// (1) Crear el mapa


const initialCamera = createMapCameraPosition({
  position: createGeoPoint({ latitude: 35.6812, longitude: 139.7671 }),
  zoom: 12,
});


const mapViewState = useMapLibreViewState({
  mapDesignType: MapLibreDesign.OsmBrightJa,
  cameraPosition: initialCamera,
});


// (2) Preparar los datos y el estado de interacción
const mapDesignOptions = providerDesignOptions;
const [selectedDesignId, setSelectedDesignId] = useState(
  String(mapViewState.mapDesignType.id),
);


// (3) Renderizar el mapa y sus capas


const handleDesignChange = (designId: string) => {
  const option = mapDesignOptions.find(item => item.design.id === designId);
  if (!option) return;
  mapViewState.mapDesignType = option.design;
  setSelectedDesignId(String(option.design.id));
};


<MapLibreMapView2D state={mapViewState}>
  <select
    value={selectedDesignId}
    onChange={event => handleDesignChange(event.target.value)}
  >
    {mapDesignOptions.map(option => (
      <option key={String(option.design.id)} value={String(option.design.id)}>
        {option.label}
      </option>
    ))}
  </select>
</MapLibreMapView2D>

Cómo funciona el código

Cambia el diseño abstracto del mapa en el estado de la vista y deja que cada proveedor lo convierta a su estilo nativo correspondiente.

Las mapDesignOptions provienen de la lista de diseños del proveedor activo y selectedDesignId refleja mapViewState.mapDesignType.id para que el <select> siga siendo un componente controlado.

handleDesignChange busca la opción elegida y asigna option.design a mapViewState.mapDesignType; el proveedor cambia entonces al estilo nativo equivalente sin reconstruir el mapa.