Infofenster wird nicht automatisch geschlossen (Google Maps)

Toronto23

Ich habe eine Karte erstellt http://userpages.flemingc.on.ca/~eluli/example3.html Wenn die Ebenen aktiviert sind, klicke ich darauf, um das InfoWindow anzuzeigen. Wie Sie dem Link entnehmen können, werden die InfoWindows nicht automatisch geschlossen, wenn ich auf eine andere Ebene klicke.

Mein JavaScript-Code lautet wie folgt. Das Problem liegt im // Popup-Fenster. Ich habe das oben genannte Problem nicht, wenn ich diesen Code aktiviere. Dann wird die Karte jedoch mit allen aktivierten Ebenen angezeigt (obwohl sie in der Legende nicht deaktiviert sind). Das will ich nicht. Ich möchte, dass die anfängliche Karte keine Ebenen enthält, damit die Benutzer selbst mit den Ebenen wechseln können. Und das InfoWindows wird automatisch geschlossen, wenn ich auf eine andere Ebene klicke.

var map, layer2, layers;
layers = [];
function initialize() {
    var ontario = new google.maps.LatLng(49.2867873, -84.7493416);

var mapOptions = {
        zoom: 5,
        center: ontario,
styles: [{"featureType":"landscape.natural","elementType":"geometry.fill","stylers":[{"visibility":"on"},{"color":"#e0efef"}]},{"featureType":"poi","elementType":"geometry.fill","stylers":[{"visibility":"on"},{"hue":"#1900ff"},{"color":"#c0e8e8"}]},{"featureType":"road","elementType":"geometry","stylers":[{"lightness":100},{"visibility":"simplified"}]},{"featureType":"road","elementType":"labels","stylers":[{"visibility":"off"}]},{"featureType":"transit.line","elementType":"geometry","stylers":[{"visibility":"on"},{"lightness":700}]},{"featureType":"water","elementType":"all","stylers":[{"color":"#7dcdcd"}]}]
    }

    var infoWindow = new google.maps.InfoWindow();
    var openInfoWindow = function (KMLevent) {
        infoWindow.close();
        infoWindow.setOptions(
        {
            content: KMLevent.featureData.infoWindowHtml,
            position: KMLevent.latLng,
            pixelOffset: KMLevent.pixelOffset
        });
        infoWindow.open(map);
    };

     map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

    var kmlOptions = {
        suppressInfoWindows: true,  // do not to display an info window when clicked
        preserveViewport: false,
        map: map
    };



  //Layer 0 is NDP       
         layers [0] = new google.maps.KmlLayer('https://docs.google.com/uc?authuser=0&id=0B79b02nBK5vkRGo1RlpVVW4td1k&export=download',
 {preserveViewport: false, suppressInfoWindows: false});
      //Layer 1 is Liberal    
        layers [1] = new google.maps.KmlLayer('https://docs.google.com/uc?authuser=0&id=0B79b02nBK5vkdXd6aWFZc05uaWM&export=download',
 {preserveViewport: false, suppressInfoWindows: false});
        //Layer 2 is PC1 
        layers [2] = new google.maps.KmlLayer('https://docs.google.com/uc?authuser=0&id=0B79b02nBK5vkYjhLenRqVWVuR0U&export=download',
 {preserveViewport: true, suppressInfoWindows: false});
// Layer 3 PC2
        layers [3] = new google.maps.KmlLayer('https://docs.google.com/uc?authuser=0&id=0B79b02nBK5vkSlJZSDR2MzBOY1E&export=download',
 {preserveViewport: true, suppressInfoWindows: false});

        //Layer 4 PC3
        layers [4] = new google.maps.KmlLayer('https://docs.google.com/uc?authuser=0&id=0B79b02nBK5vkSjNrck1MZmMydlE&export=download',
 {preserveViewport: true, suppressInfoWindows: false});
        //layer 5 Schools
        layers [5] = new google.maps.KmlLayer('https://docs.google.com/uc?authuser=0&id=0B79b02nBK5vkVGZ0OW1VZTR0LVE&export=download',
 {preserveViewport: false, suppressInfoWindows: false});

        //layer 6 Company general
        layers [6] = new google.maps.KmlLayer('https://docs.google.com/uc?authuser=0&id=0B79b02nBK5vkUHRVN0Y4TVdINjg&export=download',
 {preserveViewport: false, suppressInfoWindows: false});

         //layer 7 Company Size
        layers [7] = new google.maps.KmlLayer('https://docs.google.com/uc?authuser=0&id=0B79b02nBK5vkM19nVzdENlNIVEk&export=download',
 {preserveViewport: false, suppressInfoWindows: false});

         //layer 8 Company Exports and Revenues
        layers [8] = new google.maps.KmlLayer('https://docs.google.com/uc?authuser=0&id=0B79b02nBK5vkUXZQOUxQd0UyWDQ&export=download',
 {preserveViewport: false, suppressInfoWindows: false});

         //layer 9 Company New Hires & Growth
        layers [9] = new google.maps.KmlLayer('https://docs.google.com/uc?authuser=0&id=0B79b02nBK5vkeHIzZi00M3dHLXc&export=download',
 {preserveViewport: false, suppressInfoWindows: false});

         //layer 10 Company Tax Impact
        layers [10] = new google.maps.KmlLayer('https://docs.google.com/uc?authuser=0&id=0B79b02nBK5vka0NMc1NSbjhyemc&export=download',
 {preserveViewport: false, suppressInfoWindows: false});

  for (var i = 0; i < layers.length; i++) {
        layers[i].setMap(null);
      }


   // Pop-up window                -- Here is the problem!
   /*layers.forEach(function(url) {
        var layer = new google.maps.KmlLayer(url, kmlOptions);
        layer.setMap(map);
        google.maps.event.addListener(layer, "click", openInfoWindow);

    });*/

}


function toggleLayer(i) {
  if (layers[i].getMap() === null) {
    layers[i].setMap(map);
  }
  else {
    layers[i].setMap(null);
  }
}

//initialize();
google.maps.event.addDomListener(window, 'load', initialize);

Mein CSS:

   html, body, #map-canvas {
        height: 100%;
        margin: 0px;
        padding: 0px;
}
   #checkboxes {
  position: absolute;
  top: 30px;
  right: 10px;
  font-family: 'arial', 'sans-serif';
  font-size: 14px;
  background-color: white;
    border-width:2px;   
    border-style:groove;

}

Mein HTML:

<div id="checkboxes">
  <input type="checkbox" id="layer0" onclick="toggleLayer(0)">NDP <br>
  <input type="checkbox" id="layer1" onclick="toggleLayer(1)">Liberal <br>
  <input type="checkbox" id="layer2" onclick="toggleLayer(2);toggleLayer(3);toggleLayer(4);">PC <br>
  <input type="checkbox" id="layer5" onclick="toggleLayer(5)">Schools <br>
  <input type="checkbox" id="layer6" onclick="toggleLayer(6)">Company (General) <br>
  <input type="checkbox" id="layer7" onclick="toggleLayer(7)">Company Size <br>
  <input type="checkbox" id="layer8" onclick="toggleLayer(8)">Company Exports & Revenues <br>
  <input type="checkbox" id="layer9" onclick="toggleLayer(9)">Company new Hires & Job Growth <br>
  <input type="checkbox" id="layer10" onclick="toggleLayer(10)">Company Tax Impact
</div>
Geocodezip

Damit die Infofenster geschlossen werden, wenn Sie auf eine andere Ebene klicken, legen Sie fest suppressInfowindows:trueund fügen Sie dann jeder Ebene, die Ihre openInfoWindowFunktion aufruft, einen Klick-Listener hinzu . Deklarieren Sie ein einziges globales InfoWindow für alle zu verwendenden Ebenen.

for (var i = 0; i < layers.length; i++) {
    layers[i].setMap(null);
    google.maps.event.addListener(layers[i], "click", openInfoWindow);
}

Proof-of-Concept-Geige

Code-Auszug:

var map, layer2, layers;
layers = [];
var infoWindow = new google.maps.InfoWindow();

function initialize() {
  var ontario = new google.maps.LatLng(49.2867873, -84.7493416);

  var mapOptions = {
    zoom: 5,
    center: ontario,
    styles: [{
      "featureType": "landscape.natural",
      "elementType": "geometry.fill",
      "stylers": [{
        "visibility": "on"
      }, {
        "color": "#e0efef"
      }]
    }, {
      "featureType": "poi",
      "elementType": "geometry.fill",
      "stylers": [{
        "visibility": "on"
      }, {
        "hue": "#1900ff"
      }, {
        "color": "#c0e8e8"
      }]
    }, {
      "featureType": "road",
      "elementType": "geometry",
      "stylers": [{
        "lightness": 100
      }, {
        "visibility": "simplified"
      }]
    }, {
      "featureType": "road",
      "elementType": "labels",
      "stylers": [{
        "visibility": "off"
      }]
    }, {
      "featureType": "transit.line",
      "elementType": "geometry",
      "stylers": [{
        "visibility": "on"
      }, {
        "lightness": 700
      }]
    }, {
      "featureType": "water",
      "elementType": "all",
      "stylers": [{
        "color": "#7dcdcd"
      }]
    }]
  };

  var openInfoWindow = function(KMLevent) {
    infoWindow.close();
    infoWindow.setOptions({
      content: KMLevent.featureData.infoWindowHtml,
      position: KMLevent.latLng,
      pixelOffset: KMLevent.pixelOffset
    });
    infoWindow.open(map);
  };

  map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

  var kmlOptions = {
    suppressInfoWindows: true, // do not to display an info window when clicked
    preserveViewport: false,
    map: map
  };



  //Layer 0 is NDP       
  layers[0] = new google.maps.KmlLayer('https://docs.google.com/uc?authuser=0&id=0B79b02nBK5vkRGo1RlpVVW4td1k&export=download', {
    preserveViewport: false,
    suppressInfoWindows: true
  });
  //Layer 1 is Liberal    
  layers[1] = new google.maps.KmlLayer('https://docs.google.com/uc?authuser=0&id=0B79b02nBK5vkdXd6aWFZc05uaWM&export=download', {
    preserveViewport: false,
    suppressInfoWindows: true
  });
  //Layer 2 is PC1 
  layers[2] = new google.maps.KmlLayer('https://docs.google.com/uc?authuser=0&id=0B79b02nBK5vkYjhLenRqVWVuR0U&export=download', {
    preserveViewport: true,
    suppressInfoWindows: true
  });
  // Layer 3 PC2
  layers[3] = new google.maps.KmlLayer('https://docs.google.com/uc?authuser=0&id=0B79b02nBK5vkSlJZSDR2MzBOY1E&export=download', {
    preserveViewport: true,
    suppressInfoWindows: true
  });

  //Layer 4 PC3
  layers[4] = new google.maps.KmlLayer('https://docs.google.com/uc?authuser=0&id=0B79b02nBK5vkSjNrck1MZmMydlE&export=download', {
    preserveViewport: true,
    suppressInfoWindows: true
  });
  //layer 5 Schools
  layers[5] = new google.maps.KmlLayer('https://docs.google.com/uc?authuser=0&id=0B79b02nBK5vkVGZ0OW1VZTR0LVE&export=download', {
    preserveViewport: false,
    suppressInfoWindows: true
  });

  //layer 6 Company general
  layers[6] = new google.maps.KmlLayer('https://docs.google.com/uc?authuser=0&id=0B79b02nBK5vkUHRVN0Y4TVdINjg&export=download', {
    preserveViewport: false,
    suppressInfoWindows: true
  });

  //layer 7 Company Size
  layers[7] = new google.maps.KmlLayer('https://docs.google.com/uc?authuser=0&id=0B79b02nBK5vkM19nVzdENlNIVEk&export=download', {
    preserveViewport: false,
    suppressInfoWindows: true
  });

  //layer 8 Company Exports and Revenues
  layers[8] = new google.maps.KmlLayer('https://docs.google.com/uc?authuser=0&id=0B79b02nBK5vkUXZQOUxQd0UyWDQ&export=download', {
    preserveViewport: false,
    suppressInfoWindows: true
  });

  //layer 9 Company New Hires & Growth
  layers[9] = new google.maps.KmlLayer('https://docs.google.com/uc?authuser=0&id=0B79b02nBK5vkeHIzZi00M3dHLXc&export=download', {
    preserveViewport: false,
    suppressInfoWindows: true
  });

  //layer 10 Company Tax Impact
  layers[10] = new google.maps.KmlLayer('https://docs.google.com/uc?authuser=0&id=0B79b02nBK5vka0NMc1NSbjhyemc&export=download', {
    preserveViewport: false,
    suppressInfoWindows: true
  });

  for (var i = 0; i < layers.length; i++) {
    layers[i].setMap(null);
    google.maps.event.addListener(layers[i], "click", openInfoWindow);
  }
}


function toggleLayer(i) {
  if (layers[i].getMap() === null) {
    layers[i].setMap(map);
  } else {
    layers[i].setMap(null);
  }
}

//initialize();
google.maps.event.addDomListener(window, 'load', initialize);
   html,
   body,
   #map-canvas {
     height: 100%;
     margin: 0px;
     padding: 0px;
   }
   #checkboxes {
     position: absolute;
     top: 30px;
     right: 10px;
     font-family: 'arial', 'sans-serif';
     font-size: 14px;
     background-color: white;
     border-width: 2px;
     border-style: groove;
   }
<script src="https://maps.googleapis.com/maps/api/js"></script>
<div id="map-canvas" style="width:750px; height:450px; border: 2px solid #3872ac;"></div>
<div id="checkboxes">
  <input type="checkbox" id="layer0" onclick="toggleLayer(0)" />NDP
  <br>
  <input type="checkbox" id="layer1" onclick="toggleLayer(1)" />Liberal
  <br>
  <input type="checkbox" id="layer2" onclick="toggleLayer(2);toggleLayer(3);toggleLayer(4);" />PC
  <br>
  <input type="checkbox" id="layer5" onclick="toggleLayer(5)" />Schools
  <br>
  <input type="checkbox" id="layer6" onclick="toggleLayer(6)" />Company (General)
  <br>
  <input type="checkbox" id="layer7" onclick="toggleLayer(7)" />Company Size
  <br>
  <input type="checkbox" id="layer8" onclick="toggleLayer(8)" />Company Exports &amp; Revenues
  <br>
  <input type="checkbox" id="layer9" onclick="toggleLayer(9)" />Company new Hires &amp; Job Growth
  <br>
  <input type="checkbox" id="layer10" onclick="toggleLayer(10)">Company Tax Impact</div>

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

Infofenster automatisch schließen google maps

Navigationsansicht Wird nicht automatisch geschlossen

Infofenster von Google Map wird nicht geladen

Tensorflow-Sitzung wird nicht automatisch geschlossen

Wird das nicht referenzierte Scannerobjekt automatisch geschlossen?

Google Maps Geojson Infofenster

Google Maps Infofenster ReactJS

Wie kommt es, dass bei Google Maps das Infofenster nicht angezeigt wird, wenn ich ein benutzerdefiniertes Symbol verwende?

Benutzerdefinierte Infofenster von Google Maps können nicht festgelegt werden

ShapePath wird automatisch geschlossen

addEventListener zu Google Maps in Shiny, um Infofenster automatisch zu schließen

Asynchrones Google Maps-Infofenster

Die reaktionsschnelle Menütaste wird nicht automatisch geschlossen

Place Picker wird automatisch geschlossen

Warum wird Google Maps beim ersten Start nicht automatisch auf den Standort des Nutzers zoomen?

Fehler "Google ist nicht definiert" - Versuch, Infofenster Google Maps zu erstellen

Integrieren Sie Google Maps MarkerClusterer in das Infofenster

Die App wird automatisch geschlossen, wenn sie nicht über Xcode ausgeführt wird

Google Chrome wird Videos nicht automatisch abspielen

Infofenster für mehrere dynamische Standorte auf Google Map wird nicht richtig angezeigt showing

ProgressDialog wird nicht geschlossen

JFrame wird nicht geschlossen

Popup wird nicht geschlossen

Tastatur wird nicht geschlossen

MFMailComposeViewController wird nicht geschlossen

Popup wird nicht geschlossen

Excel wird nicht geschlossen

Tastatur wird nicht geschlossen?

Div wird nicht geschlossen

TOP Liste

  1. 1

    So legen Sie mit dem Interface Builder unterschiedliche führende Speicherplätze für unterschiedliche Geräte fest

  2. 2

    Fügen Sie eine weitere Schaltfläche zu gwt Suggest Box hinzu

  3. 3

    Wie konvertiere ich einen Vektor von Bytes (u8) in eine Zeichenfolge?

  4. 4

    Wie kann ich in SCSS mehrere Klassen zu einer einzigen kombinieren?

  5. 5

    Wie konvertiert man einen Datenrahmen im langen Format in eine Liste mit einem geeigneten Format?

  6. 6

    Speichern Sie ein MPAndroidChart-Diagramm in einem Bild, ohne es in einer Aktivität anzuzeigen

  7. 7

    Gruppieren Sie Datenrahmenspalten nach ihrem Datum (die Spaltentitel enthalten) und fassen Sie die Instanzen von Einsen und Nullen in R . zusammen

  8. 8

    Tomcat - Leiten Sie den alten Kontextstamm zum neuen Kontextstamm um

  9. 9

    Eclipse Oxygen - Projekte verschwinden

  10. 10

    Wie wählt man Unterschiede mit drei Tabellen aus?

  11. 11

    Tic Tac Toe-Spiel im React-Reset-Button funktioniert nicht

  12. 12

    So berechnen Sie die Verfügbarkeit von Anwendungen (SLA)

  13. 13

    ElasticSearch BulkShardRequest ist aufgrund von org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor fehlgeschlagen

  14. 14

    Wie kann ich den Kaskadenmodus global einstellen?

  15. 15

    Python: Spalten mit demselben Namen zusammenführen, wobei der Mindestwert beibehalten wird

  16. 16

    So erhalten Sie eine gleichmäßige Höhe für alle Eingabefelder

  17. 17

    Wie erstelle ich einen neuen übergeordneten Knoten außerhalb der .ref (/ path) in der Firebase-Echtzeitdatenbank mithilfe von Cloud-Funktionen (Typescript)?

  18. 18

    Was ist schneller: SUM über NULL oder über 0?

  19. 19

    Wie kann ich eine verschachtelte Schleife mit lapply in R ersetzen?

  20. 20

    Kann ich ein Tkinter-Canvas erstellen, das mehrere Zeilen in einem Text-Widget umfasst?

  21. 21

    Ärgerliches Problem mit yaml, das ich nicht lösen kann

heißlabel

Archiv