Closed DimitrenkoNikolay closed 1 year ago
По идее вам надо использовать onCameraPositionChange
/onCameraPositionChangeEnd
вместе с GeoSuggestions
По идее вам надо использовать
onCameraPositionChange
/onCameraPositionChangeEnd
вместе сGeoSuggestions
Вы имеете в виду через useState обновлять центр карты? Если да, то у меня была сразу такая мысль, но работает это крайне медленно. А зачем GeoSuggestons? Честно говоря, посмотрел немного что это, но так и не понял, как можно это применить
По идее вам надо использовать
onCameraPositionChange
/onCameraPositionChangeEnd
вместе сGeoSuggestions
Вы имеете в виду через useState обновлять центр карты? Если да, то у меня была сразу такая мысль, но работает это крайне медленно. А зачем GeoSuggestons? Честно говоря, посмотрел немного что это, но так и не понял, как можно это применить
Создаете поверх экрана обычный компонент (React), потом отслеживаете событие onCameraPositionChangeEnd
и делаете запрос GeoSuggestions
если надо получить название улицы. Если не надо улицу, а достаточно координат - это есть в колбеке onCameraPositionChangeEnd
. Вуаля
Создаете поверх экрана обычный компонент (React), потом отслеживаете событие
onCameraPositionChangeEnd
и делаете запросGeoSuggestions
если надо получить название улицы. Если не надо улицу, а достаточно координат - это есть в колбекеonCameraPositionChangeEnd
. Вуаля
Я понял) Проблем с получением адреса как раз-таки нет) Я правда использую Geocoder. Тут проблема больше в том, что мне нужно как-то зафиксировать маркер в точке, по которой определяется адрес, чтобы при перемещении карты он оставался всегда в этой точке. У меня была мысль сделать это через state, где будет значение из onCameraPositionChange
обновляться и его присваивать маркеру (у него есть пропса point). Но это супернеоптимизированное решение. Сейчас я сделал более костыльно, просто добавил компонент с абсолютным позиционированием и процентами его подогнал к этой точке, возвращающей адрес) На нескольких экранах проверил, вроде везде одинаковая позиция у него, но понимаю, что это тоже такое себе решение. Вот я пытаюсь понять, есть ли какая-то возможность в библиотеке для этого?
Создаете поверх экрана обычный компонент (React), потом отслеживаете событие
onCameraPositionChangeEnd
и делаете запросGeoSuggestions
если надо получить название улицы. Если не надо улицу, а достаточно координат - это есть в колбекеonCameraPositionChangeEnd
. ВуаляЯ понял) Проблем с получением адреса как раз-таки нет) Я правда использую Geocoder. Тут проблема больше в том, что мне нужно как-то зафиксировать маркер в точке, по которой определяется адрес, чтобы при перемещении карты он оставался всегда в этой точке. У меня была мысль сделать это через state, где будет значение из
onCameraPositionChange
обновляться и его присваивать маркеру (у него есть пропса point). Но это супернеоптимизированное решение. Сейчас я сделал более костыльно, просто добавил компонент с абсолютным позиционированием и процентами его подогнал к этой точке, возвращающей адрес) На нескольких экранах проверил, вроде везде одинаковая позиция у него, но понимаю, что это тоже такое себе решение. Вот я пытаюсь понять, есть ли какая-то возможность в библиотеке для этого?
Нет, насколько я знаю в библиотеке такого нет. Вариант с абсолютным компонентом поверх карты вполне верен
Создаете поверх экрана обычный компонент (React), потом отслеживаете событие
onCameraPositionChangeEnd
и делаете запросGeoSuggestions
если надо получить название улицы. Если не надо улицу, а достаточно координат - это есть в колбекеonCameraPositionChangeEnd
. ВуаляЯ понял) Проблем с получением адреса как раз-таки нет) Я правда использую Geocoder. Тут проблема больше в том, что мне нужно как-то зафиксировать маркер в точке, по которой определяется адрес, чтобы при перемещении карты он оставался всегда в этой точке. У меня была мысль сделать это через state, где будет значение из
onCameraPositionChange
обновляться и его присваивать маркеру (у него есть пропса point). Но это супернеоптимизированное решение. Сейчас я сделал более костыльно, просто добавил компонент с абсолютным позиционированием и процентами его подогнал к этой точке, возвращающей адрес) На нескольких экранах проверил, вроде везде одинаковая позиция у него, но понимаю, что это тоже такое себе решение. Вот я пытаюсь понять, есть ли какая-то возможность в библиотеке для этого?Нет, насколько я знаю в библиотеке такого нет. Вариант с абсолютным компонентом поверх карты вполне верен
Очень жаль, спасибо
SDK от яндекс не позволяет это сделать из коробки. В нативном приложении можно было бы рендерить маркер внутри карты и обновлять на cameraPositionChange - было бы плавно. Но в рн слишком большая задержка при передаче события через bridge
Решение с обычной view на абсолюте вполне рабочее и стабильное
Есть ли такая возможность в библиотеке? Нужно поставить маркер по центру карты, чтобы передвигая карту, можно было выбрать адрес?