2016-04-28 2 views
0

In V7 Bing Karte Sie Funktionalität gesetzt custmally Reißzwecke und infobox zur Verfügung gestellt haben aufWie kann ich benutzerdefinierte Reißzwecke und infobox in Clustering-Karte in V8-Modul

Link unten in Clustering Karte hinzufügen von

https://www.bingmapsportal.com/isdk/ajaxv7#LoadingDynamicModule3

Aber in V8 bing Karte Microsoft hat nicht zur Verfügung gestellt, wie kann ich Pushpin und Infobox in Clustering-Karte festlegen.

http://www.bing.com/api/maps/sdk/mapcontrol/isdk#clusteringMeanAverage+TS

Können Sie bitte Beispielcode für Reißzwecke und Info-Box in Clustering-Karte zur Verfügung stellen?

Vielen Dank im Voraus

Antwort

2

Hier ist ein Beispiel dafür, wie mit einer Reißzwecke zur Speicherung von Daten, die Metadaten-Eigenschaft verwenden und ein Click-Ereignis auf dem Reißzwecke hinzufügen, die eine Infobox öffnet:

<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
    <meta charset="utf-8" /> 
    <script type='text/javascript' 
      src='http://www.bing.com/api/maps/mapcontrol?callback=GetMap' 
      async defer></script> 
    <script type='text/javascript'> 
    var map, infobox; 

    function GetMap() { 
     map = new Microsoft.Maps.Map('#myMap', { 
      credentials: 'Your Bing Maps Key' 
     }); 

     //Create an infobox at the center of the map but don't show it. 
     infobox = new Microsoft.Maps.Infobox(map.getCenter(), { 
      visible: false 
     }); 

     //Assign the infobox to a map instance. 
     infobox.setMap(map); 

     //Create a pushpin in the at a random location in the map bounds. 
     var randomLocation = Microsoft.Maps.TestDataGenerator.getLocations(1, map.getBounds()); 
     var pin = new Microsoft.Maps.Pushpin(randomLocation); 

     //Store some metadata with the pushpin. 
     pin.metadata = { 
      title: 'Pin Title', 
      description: 'Pin discription' 
     }; 

     //Add an click event handler to the pushpin. 
     Microsoft.Maps.Events.addHandler(pin, 'click', pushpinClicked); 

     //Add pushpin to the map. 
     map.entities.push(pin); 
    } 

    function pushpinClicked(e) { 
     //Make sure the infobox has metadata to display. 
     if (e.target.metadata) { 
      //Set the infobox options with the metadata of the pushpin. 
      infobox.setOptions({ 
       location: e.target.getLocation(), 
       title: e.target.metadata.title, 
       description: e.target.metadata.description, 
       visible: true 
      }); 
     } 
    } 
    </script> 
</head> 
<body> 
    <div id="myMap" style="position:relative;width:600px;height:400px;"></div> 
</body> 
</html> 
+0

rbrundritt !! Ich möchte Infobox in Clustering-Karte öffnen Ich hatte diesen Code aber Problem angesprochen. Können Sie mir Code für offene Info-Box auf jedem Pin in Clustering-Karte mit HTML anpassbare Infobox geben. Ich muss mehrere Infoboxen auf jedem Pin setzen. –

+0

Das Öffnen einer Infobox für geclusterte Pushpins ist der gleiche Vorgang wie das Öffnen einer Infobox für einen Standard-Pin. Der einzige Unterschied besteht darin, dass Sie im Callback-Handler zum Anpassen des Cluster-Pushpins Ihr Metadaten- und Click-Ereignis hinzufügen. Um den HTML-Code der Infobox anzupassen, können Sie dies in der pushpinClicked-Funktion tun. – rbrundritt

1

Für individuelle Stecknadeln Sie sie anpassen können, bevor Sie sie an die Clusterschicht und der Schicht Clustering hinzufügen, werden sie einfach machen. Keine Notwendigkeit für einen Rückruf wie im alten v7-Modul. Ein Rückruf wird immer noch beim Anpassen gruppierter Push-Pins verwendet.

Für Infoboxen fügen Sie den Pins und Clustern einfach ein Klick-Ereignis hinzu und wenn das Ereignis ausgelöst wird, können Sie eine Infobox laden. Das ist wirklich einfach. Außerdem benötigen Sie nur eine Infobox in einer App und aktualisieren einfach ihren Inhalt basierend auf dem, was angeklickt wurde.

vollständige Dokumentation finden Sie auch hier: https://msdn.microsoft.com/en-us/library/mt712542.aspx

+0

Wie kann ich die Infobox für jeden Standort in Modul V8 dynamisch festlegen? –

+0

Fügen Sie einfach Metadaten wie Pin.metadata = {Ihre Daten} zu Ihrem Pin hinzu. Fügen Sie dann Klickhandler zu Ihren Pins hinzu. Legen Sie im Click-Ereignishandler die Titel- und Beschreibungswerte einer Infobox fest. Hier ist ein V7-Code-Beispiel, das zeigt, wie dies zu tun ist (funktioniert auch in V8): https://rbrundritt.wordpress.com/2011/10/13/multiple-pushpins-and-infoboxes-in-bing-maps-v7/Dies verwendet eine einzige Infobox für alle Push-Pins, die eine gute Leistung bietet, da nur DOM-Elemente für eine Infobox vorhanden sind, die die Seite verfolgen/aktualisieren muss, wenn sich die Karte bewegt. – rbrundritt

+0

können Sie bitte Code zur Verfügung stellen? Ich habe es versucht, aber nicht kann. –

Verwandte Themen