Google Maps zwraca błąd initMap is not a function

Witam serdecznie,
Mam taki kod:

<!DOCTYPE html>

<html lang="pl">

    <head>

        <meta charset="utf-8">

        <meta name="googlebot" content="index, follow" />

        <meta name="robots" content="index,follow" />

        <meta http-equiv="Cache-Control" content="no-store, no-cache, must-revalidate" />

        <meta http-equiv="Cache-Control" content="post-check=0, pre-check=0" />

        <meta http-equiv="Pragma" content="no-cache" />

        <script src="js/jquery-2.1.1.min.js"></script>    

        <script async defer src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCTMtpxeKLL1goekXSe73nSY8mtgK9q2ys&v=3.exp&callback=initMap"></script>

        <script src="jquery.geolocation.edit.js"></script>

    </head>

<script type="text/javascript">

$(document).ready(function() {

 $("#map").geolocate({

    lat: "#lat",

    lng: "#lng"

});

 

});    

</script>

<style>

    #map { width:100%; height:400px; }

</style>

 

<div id="map"></div>

    <input type="hidden" class="txtfield" id="lat" value="54.580570" name="szer">

    <input type="hidden" class="txtfield" id="lng" value="16.862211" name="dl">

 

</body>

</html>

I to mi zwraca:
InvalidValueError: initMap is not a function

Strona jest oczywiście większa, ale to już się sypie nawet w takim małym fragmencie sad.gif
Co mam nie tak w powyższym kodzie?

Hej,

 

zamiast document.ready**(**fn( kod od map)) zrób document.initMap = function() { kod od map }

 

  1. z tego co wiem to dokument ready wykonuje się po tuż wyliczeniu layoutu,  czyli dla Ciebie może być za wcześnie, nie wiem jak działa geolocate

  2. wypadałoby żeby callback który wysyłasz do google istniał (końcówka linku do js map google)

gdzie ja mam to znaleść?:slight_smile:

 

czego chcesz szukać? Nie rozumiem :frowning: Podsyłam gotowca

$(document).ready(function() {

 document.initMap = function() {

   $("#map").geolocate({

      lat: "#lat",

      lng: "#lng"

   });

 };

});

zobacz czy to zadziała, jeżeli nie to usuń pierwszą i ostatnią linie i sprawdź jeszcze raz

Dziękuje :slight_smile: W każdym wariancie: InvalidValueError: initMap is not a function :frowning:

przenieś

<script async defer src="https://maps.googleapis.com/maps/a … ">

tak aby był pod Twoim skryptem, pozostaw usunięte $(document).ready

nic nie dało :frowning:

<!DOCTYPE html>

<html lang="pl">

    <head>

        <meta charset="utf-8">

        <meta name="googlebot" content="index, follow" />

        <meta name="robots" content="index,follow" />

        <meta http-equiv="Cache-Control" content="no-store, no-cache, must-revalidate" />

        <meta http-equiv="Cache-Control" content="post-check=0, pre-check=0" />

        <meta http-equiv="Pragma" content="no-cache" />



<script type="text/javascript">

 function initMap() {

	 $("#map").geolocate({

      lat: "#lat",

      lng: "#lng"

   });

</script>

		<script async defer src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCTMtpxeKLL1goekXSe73nSY8mtgK9q2ys&v=3.exp&callback=initMap"></script>

<style>

    #map { width:100%; height:400px; }

</style>

		</head><body>

<div id="map"></div>

    <input type="hidden" class="txtfield" id="lat" value="54.580570" name="szer">

    <input type="hidden" class="txtfield" id="lng" value="16.862211" name="dl">

</body>

</html>

podeślij treść błędu

http://serwer1356363.home.pl/teste.html

Zwraca:

SyntaxError: missing } after function body

teste.html (wiersz 69, kolumna 5)

InvalidValueError: initMap is not a function

Google Maps API error: RefererNotAllowedMapError https://developers.google.com/maps/documentation/javascript/error-messages#referer-not-allowed-map-error Your site URL to be authorized: http://serwer1356363.home.pl/teste.html

…){a.apply(b,c)})}};_.hb=function(a){return window.setTimeout(a,0)};jb=function(a…

js?key=…initMap (wiersz 37)

<script type="text/javascript">

 function initMap() {







	 $("#map").geolocate({







      lat: "#lat",







      lng: "#lng"







   });

 }

</script>

uciekł mi jeden }

podgrałem. Teraz jest:

ReferenceError: $ is not defined

$("#map").geolocate({

teste.html (wiersz 59, kolumna 3)

<!DOCTYPE html>







<html lang="pl">







    <head>







        <meta charset="utf-8">







        <meta name="googlebot" content="index, follow" />







        <meta name="robots" content="index,follow" />







        <meta http-equiv="Cache-Control" content="no-store, no-cache, must-revalidate" />







        <meta http-equiv="Cache-Control" content="post-check=0, pre-check=0" />







        <meta http-equiv="Pragma" content="no-cache" />

        <script src="js/jquery-2.1.1.min.js"></script>    

        <script src="jquery.geolocation.edit.js"></script>



<script type="text/javascript">



 function initMap() {















	 $("#map").geolocate({















      lat: "#lat",















      lng: "#lng"















   });



 }



</script>







		<script async defer src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCTMtpxeKLL1goekXSe73nSY8mtgK9q2ys&v=3.exp&callback=initMap"></script>







		



<style>







    #map { width:100%; height:400px; }







</style>







		</head><body>



		



		







<div id="map"></div>







    <input type="hidden" class="txtfield" id="lat" value="54.580570" name="szer">







    <input type="hidden" class="txtfield" id="lng" value="16.862211" name="dl">







</body>







</html>

 

ReferenceError: $ is not defined

teste.html (wiersz 93, kolumna 3)

Google Maps API error: RefererNotAllowedMapError https://developers.google.com/maps/documentation/javascript/error-messages#referer-not-allowed-map-error Your site URL to be authorized: http://serwer1356363.home.pl/teste.html

…){a.apply(b,c)})}};_.hb=function(a){return window.setTimeout(a,0)};jb=function(a…

nie masz jquery na serwerze, nie ma katalogu js

 

http://serwer1356363.home.pl/js/jquery-2.1.1.min.js musi działać

pomogło chyba :slight_smile: dziękuje

No problemo, masz chyba jeszcze źle skonfigurowane mapy w panelu google maps

 

wypisze jeszcze zakres zmian które trzeba było wykonać w stosunku do Twojego 1 postu:

  1. funkcja podana jako callback musi być zadeklarowana przed załadowaniem js od map

<script type=“text/javascript”>

  function initMap () {

 

  }

</script>

<script async defer src=“https://maps.googleapis.com/maps/api/js?key=AIzaSyCTMtpxeKLL1goekXSe73nSY8mtgK9q2ys&v=3.exp&callback= initMap”></script>

 

  1. brakowało rozpoczęcia <body>, <head> kończył się za wcześnie

  2. brakowało jsów na serwerze

 

idę spać