С помощью реакции я пытаюсь создать карты Google с маркерами, которые применяются к адресу вместо значений широты и долготы. Как вы можете видеть, компонент создает тег скрипта при монтировании и инициализирует карту и маркер с помощью функций google.maps .... Если я создаю маркер с lat / lng, он работает нормально, но вместо этого я хочу искать по адресу. Итак, вот мой код, вы можете найти ошибку? Я не использую никаких пакетов и также хотел бы придерживаться этого. (НЕТ ПАКЕТОВ!) Еще один вопрос - в каком формате я должен написать эти адреса. Улица, почтовый индекс, город?
Переполнение стека требует еще текста, извините за повторение.
export interface ProjectsListMapProps {
}
export default class ProjectsListMap extends React.Component<ProjectsListMapProps> {
constructor(props: ProjectsListMapProps) {
super(props);
this.renderMap = this.renderMap.bind(this);
this.mapContainer = this.mapContainer.bind(this);
this.codeAddress = this.codeAddress.bind(this);
}
componentDidMount() {
if (!document.querySelectorAll(`[src="${'https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY'}"]`).length) {
document.body.appendChild(Object.assign(
document.createElement('script'), {
type: 'text/javascript',
src: 'https://maps.googleapis.com/maps/api/js',
onload: () => this.renderMap()
}
));
}
}
renderMap() {
const coords = { lat: 41.375885, lng: 2.177813 };
const el = document.getElementById('map');
if (el) {
const map = new google.maps.Map(el, {
zoom: 16,
center: {
lat: coords.lat,
lng: coords.lng
}
});
const geocoder = new google.maps.Geocoder();
this.codeAddress(geocoder, map);
return map;
}
else {
return null;
}
}
codeAddress(geocoder: any, map: any) {
geocoder.geocode({'address': 'Budapest'}, function(results: any, status: any) {
console.log(results);
if (status === 'OK') {
map.setCenter(results[0].geometry.location);
const marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
return marker;
}
else {
return null;
}
});
}
render() {
return(
<div className="card map-holder">
<div id="map" />
</div>
);
}
}
Мой журнал возвращает пустой массив в результате.
Проверить: https://codepen.io/mblmarlon/pen/PoqzjXy для примера