Coloquei o código que esta na documentação dentro do meu head.
<script
src="https://maps.googleapis.com/maps/api/js?key=SUA_API_AKI&callback=initMap&libraries=drawing&v=weekly" async defer>
</script>
Agora eu queria colocar mais uma API, o places... que permite pedir a localização, e também criar um campo tipo google maps que sugere o local e tudo.
Na documentação pediu para adicionar o seguinte código:
<script
src="https://maps.googleapis.com/maps/api/js?key=SUA_API_AKI&callback=initMap&libraries=places&v=weekly" defer>
</script>
No entanto eu estou com problemas para que funcione os 2. Eu só coloco o código um embaixo do outro? eu coloco no primeiro código um "&" e adiciono "libraries=places"? Desses dois jeitos para de funcionar a ferramenta de desenho.
fonte: https://developers.google.com/maps/documentation/javascript/examples/places-searchbox#all
https://developers.google.com/maps/documentation/javascript/drawinglayer
esse é o codigo para ter o campo tipo google maps, em seguida da ferramenta de desenho, tudo dentro do initMap:
const input = document.getElementById("pac-input"
const searchBox = new google.maps.places.SearchBox(input);
map.addListener("bounds_changed", () => {
searchBox.setBounds(map.getBounds());
});
searchBox.addListener("places_changed", () => {
const places = searchBox.getPlaces();
if (places.length == 0) {
return;
}
const boundss = new google.maps.LatLngBounds();
places.forEach((place) => {
if (!place.geometry) {
return;
}
if (place.geometry.viewport) {
// Only geocodes have viewport.
boundss.union(place.geometry.viewport);
} else {
boundss.extend(place.geometry.location);
}
});
map.fitBounds(boundss);
});
//codigo para a ferramenta de desenho
var ferramenta = new google.maps.drawing.DrawingManager({
drawingControl: true,
drawingControlOptions: {
position: google.maps.ControlPosition.TOP_CENTER,
drawingModes: [
google.maps.drawing.OverlayType.MARKER,
google.maps.drawing.OverlayType.POLYGON,
],
},
polygonOptions: {
fillColor: "#FF0000",
fillOpacity: 0.35,
strokeWeight: 1,
strokeColor: "#FF0000",
strokeOpacity: 0.8,
clickable: true,
draggable: false,
editable: false,
zIndex: 1
},
});
//coloca a ferramenta de desenho no mapa
ferramenta.setMap(map);