Вы можете установить функцию панорамирования, которая будет перемещать карту по значению вашего центра при каждом нажатии кнопки. Вот пример кода . Вот объяснение для вашей справки:
- В вашем классе GMapReact используйте onGoogleApiLoaded для доступа к объекту Google Maps. Вам также необходимо установить yesIWantToUseGoogleMapApiInternals в true и установить объявление функции PanTo , передающей объект карты. Это должно выглядеть так:
class GMapReact extends React.Component {
render() {
const { center, zoom } = this.props;
return (
<div style={{ width: "100%", height: "100%" }}>
<GoogleMap
bootstrapURLKeys={{ key: [GOOGLE_API_KEY] }}
center={center}
zoom={zoom}
yesIWantToUseGoogleMapApiInternals
onGoogleApiLoaded={({ map }) => PanTo(map)}
/>
</div>
);
}
}
Объявите глобальную переменную, которая будет содержать объект карты (в данном случае это map2):
var map2;
. Вам также необходимо объявить глобальную переменную, в которой будут храниться ваши координаты:
var latlng;
Затем выполните функцию PanTo:
function PanTo(map) {
//this will assign the map object at instantiation to global variable map2.
map2 = map;
map.panTo(latlng);
}
В вашем методе
handleClick () вам необходимо сохранить значение
this.state.form в глобальной переменной, поскольку функция PanTo находится вне класса. Затем вам нужно вызвать функцию PanTo, передающую объект карты. Поскольку значение latlng теперь имеет значение, оно будет вызываться в этой строке в функции PanTo
map.panTo(latlng);
. Добавьте следующую строку в ваш код:
latlng = this.state.form;
PanTo(map2);
Надеюсь, это поможет!