search.ch

map.search.ch API Referenz

Die Klassenreferenz beschreibt alle öffentlichen Klassen des APIs und deren Methoden, die zur Einbindung und Steuerung der interaktiven Schweizerkarte benutzt werden können.

class SearchChMap

Dies ist die zentrale Klasse der Karte und muss in Ihrer HTML-Seite instaziiert werden.

Konstruktor

var map = new SearchChMap({ container:"mapcontainer" });

Der Konstruktor erwartet ein Objekt mit folgenden benannten Parametern:

ParameterTypOptionalDefaultBeschrieb
containerMixedjamapcontainerDOM-Objekt oder ID des Containers, welcher die Map beinhaltet. Vorzugsweise ein Blockelement wie <div> oder <p>
centerMixedja-Zentrum der Karte. String mit Adresse oder Array mit Geo-Koordinaten. Siehe Geo-Referenzen für Details.
fromMixedja-Startpunkt einer Route. Eingabe wie center, kann nur zusammen mit to verwendet werden.
toMixedja-Zielpunkt einer Route. Eingabe wie center, kann nur zusammen mit from verwendet werden.
routemodeStringjacarRoute mode. Werte: car,bicycle,pedestrian,oev
typeStringjastreetKartentyp aerial oder street
zoomlevelNumberjaautoZoomstufe. Mögliche Werte: 6 - 19
zoomNumberjaautoZoomstufe (veraltet). Mögliche Werte: 1024,512,256,128,64,32,16,8,4,2,1,0.5,0.25,0.125
Entspricht der Anzahl Meter pro Pixel, wird falls nötig auf die nächste verfügbare Stufe gerundet.
controlsStringjadefaultSteuer- und Anzeigeelemente in der Karte (als komma-getrennter String):
default: Standardauswahl an Steuerelementen
zoom: Zoomsteuerung
type: Umschalter zwischen Luftbild und Strassenkarte
ruler: Kartenmassstab unten rechts
oder String "all"
poigroupsStringjadefaultPOI-Kategorien (als komma-getrennter String). Siehe POI-Kategorien und -gruppen.
drawingStringja-Mit "Auf Karte zeichnen" von map.search.ch erstellte Zeichnung, die eingeblendet wird, z.B. "mu4zdnjn2".
markerBooleanjaautoDamit wird gesteuert, ob die Markierung des Kartenzentrums (falls Adresse genau genug ist) angezeigt wird.
gestureHandlingStringjaauto Steuert, wie das API Gesten auf der Karte behandelt. Erlaubte Werte:
cooperative: Scroll-Events und ein-Finger-Touch-Gesten scrollen die Seite und zoomen/verschieben die Karte nicht. Zwei-Finger-Touch-Gesten verschieben und zoomen die Karte. Scroll Events kombiniert mit Ctrl- oder ⌘-Taste zoomen die Karte.
greedy: Alle Touch-Gesten und Scroll-Events verschieben/zoomen die Karte.
auto: Entweder cooperative or greedy, je nachdem ob die Seite scrollbar oder in einem Iframe ist.
poiClickBooleanyestrueKlicks auf POIs und Karte ein-/ausschalten
poiHoverBooleanyestruePOI hover ein-/ausschalten

Objektmethoden

MethodeReturnwertBeschrieb
set(Object p)voidSetze/Aktualisiere Einstellungen der Karte. Als Argument wird ein Objekt mit denselben benannten Parametern wie beim Konstruktor (ausgenommen container) erwartet.
go(Object p)voidVerschiebt die Karte zum angegebenen Zentrum (center). Argument ist ein Objekt mit folgenden benannten Parametern:
center: Geo-Referenz des neuen Zentrums
zoomlevel: Neue Zoomstufe (optional). Gültige Zoomstufen siehe Konstruktor-Parameter.
marker: Steuert, ob die Markierung des Kartenzentrums angezeigt wird (Boolean)
get([String what])mixedGetter für Eigenschaften des Kartenobjekts. Als Argument können alle Namen wie beim Setzen der Eigenschaften mit set() verwendet werden. Ohne Argument liefert diese Methode ein Objekt mit allen Parametern zurück.
Beispiel: map.get('zoom') oder auch map.get().zoom liefert die aktuelle Zoomstufe. Wurde eine Route berechnet, können mit map.get('routeinfo').distance Informationen dazu (wie hier z.B. die Distanz) ausgelesen werden.
zoom(int dir)voidEin-/Auszoomen der Karte. dir > 0: einzoomen, dir < 0: auszoomen.
showPOIGroup(String groups)voidBlendet eine oder mehrere POI-Gruppen ein. Argument ist ein komma-getrennter String gemäss Liste.
hidePOIGroup(String groups)voidEntfernt POI-Gruppen von der Karte. Argument wie bei showPOIGroup()
addPOI(SearchChPOI obj)voidPlatziert einen spezifischen POI auf der Karte. Erwartet eine Instanz von SearchChPOI als Argument.
removePOI(SearchChPOI obj)voidEntfernt einen spezifischen POI von der Karte. Benötigt eine Referenz des zu entfernenden SearchChPOI-Objekts als Argument.
removeAllPOIs()voidLöscht alle spezifischen POI-Objekte von der Karte.
getPermUrl([String mode])StringLiefert eine absolute URL nach map.search.ch mit dem aktuellen Kartenausschnitt. Über den optionalen Parameter mode können auch URLs für die Druckversion ("print") oder die Wegbeschreibung einer Route ("directions") generiert werden.
addEventListener(
  String event, function callback)
voidRegistrieren eines Eventhandlers.
event: Name des Events. Siehe nachfolgende Liste.
callback: Referenz auf eine callback Funktion.
removeEventListener(
  String event, function callback)
voidEntfernen eines zuvor registrierten Eventhandlers. Es müssen dieselben Argumente wie beim Registrieren angegeben werden.
resize(int w, int h)voidSkaliert die eingebundene Karte auf die angegebene Breite und Höhe.
ready(handler)voidFührt handler aus, sobald die Karte geladen ist.

Events

EventBeschrieb
loadFeuert wenn die Karte fertig geladen ist. Das heisst alle sichtbaren Bilder sind geladen und werden angezeigt.
changeFeuert wenn sich der Kartenausschnitt geändert hat. So z.B. nachdem der Benutzer die Karte verschoben oder gezoomt hat.
maptypechangedFeuert wenn der Kartentyp (Luftbild/Strassenkarte) gewechselt wird.
dragstartFeuert wenn der Benutzer beginnt die Karte mit der Maus zu ziehen.
dragendFeuert wenn der Benutzer die Maus nach dem Ziehen wieder loslässt.
mouseclickFeuert wenn der Benutzer in die Karte klickt.
zoomstartFeuert wenn die Karte gezoomt wird.
zoomendFeuert wenn die Zoom-Animation der Karte beendet ist
mapmoveFeuert fortlaufend, während die Karte bewegt wird.
mousemoveFeuert fortlaufend, während die Maus innerhalb der Karte bewegt wird.

Eventhandler werden mit den folgenden Methoden beim Objekt an- und abgemeldet. Ein Handler kann eine globale Funktion oder eine Objektmethode sein und erhält als einziges Argument ein Objekt mit event-spezifischen Eigenschaften.

// Register an event-handler function map.addEventListener("load", function(e){ alert(e.event); }); // Add and remove an object method as event-listener function mapchanged(e) { [..] } map.addEventListener("change", mapchanged); map.removeEventListener("change", mapchanged);

POI-Kategorien und -gruppen


default: Zoomstufenabhängige Auswahl an POI-Kategorien
verkehr: Verkehr
zug Zug
haltestelle Tram/Bus
bergbahn Bergbahn
parking Parking
viasuisse Verkehrsinfo
velo Velos/E-Scooters
mobility Mobility
gastro: Gastronomie
bar Bar
cafe Café
hotel Hotel
restaurant Restaurant
kultur: Kultur/Freizeit
kino Kino
museum Museum
theater Theater
tour Touren
feuerstelle Feuerstelle
spielplatz Spielplatz
bad Badeanstalt
camping Campingplatz
gebaeude: Öffentl. Gebäude
kirche Kirche
polizei Polizei
schule Schule, Uni
spital Spital
verwaltung Verwaltung
service: Shopping/Service
apotheke Apotheke
geldautomat Geldautomat
post Post
shop Shop
tankstelle Tankstelle
ladestation Elektromobil-Ladestation
geo: Geo
pass Pässe
wasserfall Wasserfälle
webcam Webcam
wikipedia Wikipedia

Und so werden POI-Kategorien in der Karte ein- und ausgeschaltet:

map.showPOIGroup("verkehr,bar,cafe,theater"); map.hidePOIGroup("mobility");

 

class SearchChPOI

Diese Klasse repräsentiert einen spezifischen POI für die interaktive Karte. Instanzen davon können dem map-Objekt über die Methode addPOI() hinzugefügt und auf der Karte platziert.

Konstruktor

var Poi = new SearchChPOI({ center:[600000,200000], html:"Sternwarte Bern" }); map.addPOI(Poi);

Der Konstruktor erwartet ein Objekt mit folgenden benannten Parametern:

ParameterTypOptionalBeschrieb
centerMixedneinPosition des Symbols. String mit Adresse oder Array mit Geo-Koordinaten. Siehe Geo-Referenzen für Details.
htmlStringneinInhalt des POI-Popups. HTML-Code ist erlaubt.
titleStringjaTitelzeile des POI-Poupups
iconStringjaURL der Bilddatei, die als Symbol des POIs verwendet werden soll
widthIntegerjaBreite des POI-Symbols in Pixel
heightIntegerjaHöhe des POI-Symbols in Pixel
offsetArrayjaKoordinaten vom Referenzpunkt des POI-Symbols in Pixel: [x,y]. Wird automatisch als [width/2, height/2] berechnet, falls nicht angegeben.
enabledBooleanjaTrue (Default) wenn der POI-Text beim Überfahren mit der Maus angezeigt werden soll
minzoomNumberjaPOI wird erst ab dieser Zoomstufe angezeigt (siehe Parameter zoom von SearchChMap)
maxzoomNumberjaPOI wird nur bis zu dieser Zoomstufe angezeigt

Objektmethoden

MethodeReturnwertBeschrieb
set(Object p)voidSetze/Aktualisiere Eigenschaften des POI-Symbols. Als Argument wird ein Objekt mit denselben benannten Parametern wie beim Konstruktor erwartet.
open()voidÖffnet das POI-Popup mit Titel und HTML-Inhalt. Befindet sich der POI nicht im aktuellen Kartenausschnitt, wird die Karte soweit verschoben, bis der POI sichtbar wird.
close()voidBlendet das POI-Popup wieder aus
show()voidBlendet das POI-Symbol auf der Karte ein
hide()voidBlendet das POI-Symbol auf der Karte aus
destroy()voidEntfernt den POI von der Karte und löscht alle internen Referenzen auf das Objekt
isVisible()booleanGibt an ob der POI im aktuellen Kartenausschnitt sichtbar ist
addEventListener(
  String event, function callback)
voidRegistrieren eines Eventhandlers.
event: Name des Events. Siehe nachfolgende Liste.
callback: Referenz auf eine callback Funktion.
removeEventListener(
  String event, function callback)
voidEntfernen eines zuvor registrierten Eventhandlers. Es müssen dieselben Argumente wie beim Registrieren angegeben werden.

Events

EventBeschrieb
mouseoverFeuert wenn die Maus über das POI-Symbol auf der Karte fährt.
mouseoutFeuert wenn der Mauszeiger das POI-Symbol wieder verlässt.
mouseclickFeuert wenn das POI-Symbol auf der Karte angeklickt wird.
popupopenFeuert wenn das POI-Popup geöffnet wird.
popupcloseFeuert wenn das Popup ausgeblendet wird.

Eventhandler werden mit den folgenden Methoden beim Objekt an- und abgemeldet. Ein Handler kann eine globale Funktion oder eine Objektmethode sein und erhält als einziges Argument ein Objekt mit event-spezifischen Eigenschaften.

Poi.addEventListener("popupopen", poiPopup); Poi.removeEventListener("popupopen", poiPopup);

Noch Fragen?

Falls etwas nicht wie erwartet funktioniert oder Sie unverzichtbare Funktionen vermissen, lassen Sie es uns wissen. Wir nehmen Ihr Feedback gerne entgegen.