IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

APIs Google Discussion :

ERREUR : setMap: not an instance of Map


Sujet :

APIs Google

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2019
    Messages : 2
    Par défaut ERREUR : setMap: not an instance of Map
    Hello voici mon soucis, je dois afficher une carte contenant des adresse de restos.

    Ma carte s'affiche bien et indique ma position mais je n'arrive pas a faire affcher d'autres adresses ..

    map.js
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    class Map1
    {
        constructor()
        {        
            var map1;
            var infoWindow1;
            var infoWindowResto;
     
     
            this.createMap();   
     
        }
     
        createMap()
        {                
            var infoWindow1 = new google.maps.InfoWindow;
     
            if ( navigator.geolocation )
            {                
                navigator.geolocation.getCurrentPosition(function (p)
                {
                    var position = 
                    {
                        lat: p.coords.latitude,
                        lng: p.coords.longitude
                    };
     
                    var options = 
                    {
                        center: { lat : p.coords.latitude, lng: p.coords.longitude},
                        zoom : 8,
                    };
     
                    map1 = new google.maps.Map(document.getElementById('map'), options);
     
                    infoWindow1.setPosition(position);
     
    			    var marker = new google.maps.Marker(
                    {
    				    map: map1
    			    });
                    infoWindow1.setContent('your location !');
                    infoWindow1.open(map1, marker);    
                    console.log(map1);
     
                }, function ()
                    {
                        this.handleLocationError('geolocation service failed', map1.center())
                    })	
            }
            else
            {
                this.handleLocationError('no gleolocation available', map1.center())
            }      
            this.placeResto();
        }
     
     
        placeResto()
        {         
            var infoWindowResto = new google.maps.InfoWindow;
     
     
     
            ajaxGet("http://localhost/javascript-web-srv/data/resto.json", function (reponse) 
            {
                var rep = JSON.parse(reponse);
     
                for(let i = 0; i < rep.length; i++)
                {
                    var y = rep[i];    
     
                    var latRestos = y.lat;
                    var lngResto = y.lng;
                    var nom = y.restaurantName;
     
     
                    var marqueurResto = { lat:latRestos, lng:lngResto};	
     
                    infoWindowResto.setPosition(marqueurResto);
     
                    var marker1 = new google.maps.Marker
                    ({
                        position: marqueurResto,
                        map: map1    
                    });    
     
                    infoWindowResto.open(map1, marker1); 
     
                     console.log(nom,latRestos,lngResto);
     
                };
            });
     
        }
     
     
        handleLocationError ( content, position )
        {
            infoWindow.setPosition(position);
            infoWindow.setContent(content);
            infoWindow.open(map);
        }
     
    }
    Lorsque je lance dans le navigateur, la console affiche cette erreur :
    InvalidValueError: setMap: not an instance of Map; and not an instance of StreetViewPanorama js:60:128
    Bronco 48.8737815 2.3501649 map.js:90:26
    InvalidValueError: setMap: not an instance of Map; and not an instance of StreetViewPanorama js:60:128
    Babalou 48.8865035 2.3442197 map.js:90:26
    TypeError: f is undefined
    je récupère pourtant bien les coordonnées des point ...

    Merci pour votre aide

  2. #2
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Salut, bienvenue sur DVP

    Peut être tes lignes 84 et 85
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
                    var marker1 = new google.maps.Marker
                    ({
                        'position': marqueurResto,
                        'map': map1    
                    });
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2019
    Messages : 2
    Par défaut
    merci a toi

    J'ai essayer avec les '', ça ne change rien..
    mais quand je fais un console.log('map1') a deux endroit différents j’obtiens :

    InvalidValueError: setMap: not an instance of Map; and not an instance of StreetViewPanorama js:60:128
    Object { }
    map.js:87:25
    Bronco 48.8737815 2.3501649 map.js:90:26
    InvalidValueError: setMap: not an instance of Map; and not an instance of StreetViewPanorama js:60:128
    Object { }
    map.js:87:25
    Babalou 48.8865035 2.3442197 map.js:90:26
    Object { gm_bindings_: {…}, __gm: {…}, gm_accessors_: {…}, center: {…}, zoom: 8, mapTypeId: "roadmap", j: undefined, mapTypes: {}, features: {}, streetView: {…}, … }
    On dirais qu'elle est vide dans la boucle

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    Bonjour,
    ta « classe » et les méthodes associées requirent plus de rigueur comme par exemple les déclarations
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class Map1 {
      constructor() {
        this.map1 = null;           // ou directement = new google.maps.Map(...)
        this.infoWindow1 = null;
        this.infoWindowResto = null;
        this.createMap();
      }
    ensuite dans ta classe tu peux utiliser this.map1.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    let marker = new google.maps.Marker({
      map: this.map1
    });

Discussions similaires

  1. API Google Map et markers en XML
    Par greichka dans le forum APIs
    Réponses: 8
    Dernier message: 21/05/2008, 12h05
  2. [API Google Map]
    Par Are-no dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 07/05/2008, 15h54
  3. API Google Map
    Par jpower dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 19/11/2007, 22h43
  4. [MySQL] Utilisation de l'API Google Maps
    Par nagadef dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/07/2007, 21h37
  5. API Google maps
    Par XGotX dans le forum Windows
    Réponses: 4
    Dernier message: 28/01/2007, 16h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo