• Как сделать, чтобы балун всегда находился в центре карты?

    @Nevevr_Give_UP
    0xD34F 0xD34F Куратор тега JavaScript Спасибо тебе!
    Сделал точь-в-точь)
    При увеличении надо сделать плавнее и все
    Позже если что ещё обновлю)

    import React, { useRef, useState } from "react";
    import { Box } from "@mui/system";
    import { GeolocationControl, Map, Placemark } from "react-yandex-maps";
    import locationIcon from "./locationIcon.png";
    
    export function YMapsTest() {
      const [coords, setCoords] = useState([55.75, 37.57]);
      const placemarkerRef = useRef(null);
    
      console.log(coords);
    
      // RENDER
      return (
        <Box sx={{ p: 2, m: 2 }}>
          <Map
            state={{ center: coords, zoom: 9 }}
            width={600}
            height={400}
            onBoundsChange={(e) => {
              setCoords(e.originalEvent.map.getCenter());
            }}
            instanceRef={(ref) => {
              if (ref) {
                ref.events.add("actiontick", function (e) {
                  const { globalPixelCenter, zoom } = e.get("tick");
                  placemarkerRef.current.geometry.setCoordinates(
                    ref.options.get("projection").fromGlobalPixels(globalPixelCenter, zoom)
                  );
                });
              }
            }}
          >
            <Placemark
              geometry={coords}
              instanceRef={placemarkerRef}
              options={{
                draggable: true,
                iconLayout: "default#image",
                iconImageHref: locationIcon,
                iconImageSize: [30, 30],
              }}
            />
            <GeolocationControl />
          </Map>
        </Box>
      );
    }
    Ответ написан
    Комментировать