Google maps konum işaretleme sorunu
Merhaba arkadaşlar. Veritabanına kaydettiğim koordinatları işaretleyici ile harita üzeride gösteremiyorum. Chrome konsolunu açtığımda da iki sorun ile karşılaşıyorum.
Koordinatları çekerken hata oluştu:
SyntaxError: Unexpected token
<!DOCTYPE ... is not valid JSON
İkinci hata faturalandırma yapmamı istiyor. Yalnız ben 18 bin gibi bir görüntüleme yapmadım. Bu sayılara kadar ücretsiz olması gerekli.
Kodlar aşağıda.
<div class="konum">
<?php
$genelbilgilersorgusu = "SELECT * FROM yenieklenenler WHERE yenieklenenler_id='$sayfaal'";
$genelbilgilersorgu = mysqli_query($db, $genelbilgilersorgusu);
foreach($genelbilgilersorgu as $genelbilgilersorgugoster) {
?>
<div id="map" style="height: 400px; width: 100%;">
<?php $coordinates[] = array($genelbilgilersorgugoster['yenieklenenler_latitude'], $genelbilgilersorgugoster['yenieklenenler_longitude']); ?>
</div>
<?php }
json_encode($coordinates);
?>
<script>
var map;
var marker;
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
center: {lat: 41.0082, lng: 28.9784},
zoom: 6
});
fetch('yenieklenensayfasi.php')
.then(response => response.json())
.then(coordinates => {
coordinates.forEach(coord => {
var newMarker = new google.maps.Marker({
position: {lat: parseFloat(coord.lat), lng: parseFloat(coord.lng)},
map: map
});
});
})
.catch(error => {
console.error('Koordinatları çekerken hata oluştu:', error);
});
map.addListener('click', function(event) {
placeMarker(event.latLng);
});
}
function placeMarker(location) {
if (marker) {
marker.setPosition(location);
} else {
marker = new google.maps.Marker({
position: location,
map: map
});
}
document.getElementById('latitude').value = location.lat();
document.getElementById('longitude').value = location.lng();
}
</script>
<script src="https://maps.googleapis.com/maps/api/js?key=apikey&loading=async&callback=initMap" async defer></script>
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (2)
Sorunu şöyle çözdüm.
<div class="konum">
<?php
$genelbilgilersorgusu = "SELECT * FROM yenieklenenler WHERE yenieklenenler_id='$sayfaal'";
$genelbilgilersorgu = mysqli_query($db, $genelbilgilersorgusu);
$coordinates = array();
foreach($genelbilgilersorgu as $genelbilgilersorgugoster) {
?>
<div style="width: 100%; height: 100%;">
<iframe src="https://www.google.com/maps/?q=<?php echo $genelbilgilersorgugoster['yenieklenenler_latitude']; ?>, <?php echo $genelbilgilersorgugoster['yenieklenenler_longitude']; ?>&h1=es;z=14&output=embed" frameborder="0" style="width: 100%; height: 400px;"></iframe>
</div>
<?php } ?>
</div>
<script>
var map;
var markers = [];
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
center: {lat: 41.0082, lng: 28.9784},
zoom: 30
});
<?php if (!empty($coordinates)) { ?>
<?php foreach ($coordinates as $coord) { ?>
var marker = new google.maps.Marker({
position: {lat: parseFloat(coord['lat']), lng: parseFloat(coord['lng'])},
map: map
});
markers.push(marker);
<?php } ?>
<?php } ?>
}
</script>
<script
src="https://maps.googleapis.com/maps/api/js?key=keyalani&callback=initMap&v=weekly" defer></script>
</script>
yenieklenensayfasi.php sayfasına attığın istek json dönmüyor. Bunun yerine bir html içerik (muhtemelen php hata sayfası) dönüyor.
Bu yüzden .then(response => response.json())
satırında hata alıyorsun.
yenieklenensayfasi.php sayfasının json döndürdüğünden emin olmalısın. Bir hata varsa bunu bulup gidermelisin.