javascript — карта Google Геокодирование PHP работает в IE, но не в Chrome / mobile, Edge или Safari / Mobile. Я получаю сообщение об ошибке «неожиданный токен»

Я провел некоторое исследование, но не могу найти проблему здесь.

<body>

<?php
if($_POST){

// get latitude, longitude and formatted address
$data_arr = geocode($_POST['address']);

// if able to geocode the address
if($data_arr){

$latitude = $data_arr[0];
$longitude = $data_arr[1];
$formatted_address = $data_arr[2];

?>

<!-- google map will be shown here -->
<div id="gmap_canvas">Loading map...</div>
<div id='map-label'>Map shows approximate location.</div>

<!-- JavaScript to show google map -->
<script type="text/javascript" src="http://maps.google.com/maps/api/js"></script>
<script type="text/javascript">
function init_map() {
var myOptions = {
zoom: 14,
center: new google.maps.LatLng(<?php echo $latitude; ?>, <?php echo $longitude; ?>),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("gmap_canvas"), myOptions);
marker = new google.maps.Marker({
map: map,
position: new google.maps.LatLng(<?php echo $latitude; ?>, <?php echo $longitude; ?>)
});
infowindow = new google.maps.InfoWindow({
content: "<?php echo $formatted_address; ?>"});
google.maps.event.addListener(marker, "click", function () {
infowindow.open(map, marker);
});
infowindow.open(map, marker);
}
google.maps.event.addDomListener(window, 'load', init_map);
</script>

<?php

// if unable to geocode the address
}else{
echo "No map found.";
}
}
?>

<div id='address-examples'>
<div>Address examples:</div>
<div></div>
<div></div>
</div>

<!-- enter any address -->
<form action="" method="post">
<input type='text' name='address' placeholder='Enter any address here' />
<input type='submit' value='Geocode!' />
</form>

<?php

// function to geocode address, it will return false if unable to geocode address
function geocode($address){

// url encode the address
$address = urlencode($address);

// google map geocode api url
$url = "http://maps.google.com/maps/api/geocode/json?address={$address}";

// get the json response
$resp_json = file_get_contents($url);

// decode the json
$resp = json_decode($resp_json, true);

// response status will be 'OK', if able to geocode given address
if($resp['status']=='OK'){

// get the important data
$lati = $resp['results'][0]['geometry']['location']['lat'];
$longi = $resp['results'][0]['geometry']['location']['lng'];
$formatted_address = $resp['results'][0]['formatted_address'];

// verify if data is complete
if($lati && $longi && $formatted_address){

// put the data in the array
$data_arr = array();

array_push(
$data_arr,
$lati,
$longi,
$formatted_address
);

return $data_arr;

}else{
return false;
}

}else{
return false;
}
}
?>

</body>

// В строке ниже я получаю сообщение об ошибке «неожиданный токен?»

 center: new google.maps.LatLng(<?php echo $latitude; ?>,<?php echo $longitude; ?>),

Извините, если информации недостаточно, я впервые работаю с Google Maps.

2

Решение

Я понял, что мой код не был проблемой. Мне нужно было поменять

script type = «text / javascript» src = «http://maps.google.com/maps/api/js»>

к

script type = «text / javascript» src = «https://maps.google.com/maps/api/js»>

По какой-то причине браузерам понадобился бы безопасный доступ к этой ссылке src, и у меня не было «s» на http. Как только я добавил S, он начал работать во всех браузерах.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]