Как подключить адреса в моей sqlite db к позиционным маркерам с помощью API google maps в Django
Я начинаю программировать на Django и также начинаю использовать API Google, в нескольких словах для моего маленького проекта, мне нужно установить маркерные точки на основе моей базы данных SQLite, связанные с адресами, которые регистрируют пользователи, на карте, отображаемой в моем HTML, Я знаю, что мне нужно преобразовать эти строки адресов в координаты в JSON файле, и этот JSON файл является тем, который API может прочитать и отобразить, до сих пор мне удалось установить карту, геолокацию и установить указатели из файла примера, основанного на url, который дает документация google.
Я буду бесконечно благодарен, если кто-то сможет помочь мне разобраться в этих вопросах:
a) Как мне преобразовать адресные переменные моей модели в Django в читаемый Google API JSON. b) Как мне вызвать этот JSON файл, чтобы отобразить его на моей карте.
Большое спасибо за ваше время!
let map;
function initMap() {
map = new google.maps.Map(document.getElementById("map"), {
zoom: 2,
center: new google.maps.LatLng(2.8, -187.3),
mapTypeId: "terrain",
});
infoWindow = new google.maps.InfoWindow();
const locationButton = document.createElement("button");
locationButton.textContent = " Mi ubicacion ";
locationButton.classList.add("custom-map-control-button");
map.controls[google.maps.ControlPosition.TOP_CENTER].push(locationButton);
locationButton.addEventListener("click", () => {
// Try HTML5 geolocation.
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(
(position) => {
const pos = {
lat: position.coords.latitude,
lng: position.coords.longitude,
};
infoWindow.setPosition(pos);
// infoWindow.setContent("Tu estas aqui");
// infoWindow.open(map);
map.setCenter(pos);
},
() => {
handleLocationError(true, infoWindow, map.getCenter());
}
);
} else {
// Browser doesn't support Geolocation
handleLocationError(false, infoWindow, map.getCenter());
}
});
// Create a <script> tag and set the USGS URL as the source.
const script = document.createElement("script");
// This example uses a local copy of the GeoJSON stored at
// http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_week.geojsonp
script.src =
"https://developers.google.com/maps/documentation/javascript/examples/json/earthquake_GeoJSONP.js";
document.getElementsByTagName("head")[0].appendChild(script);
}
// Loop through the results array and place a marker for each
// set of coordinates.
const eqfeed_callback = function (results) {
for (let i = 0; i < results.features.length; i++) {
const coords = results.features[i].geometry.coordinates;
const latLng = new google.maps.LatLng(coords[1], coords[0]);
new google.maps.Marker({
position: latLng,
map: map,
});
}
};