Diese Seite beschreibt, wie die MapBS-API genutzt werden kann. Die API stellt eine moderne Web-Component-API zur Verfügung, die eine einfache Integration in Webseiten ermöglicht. Technisch gesehen handelt es sich bei der API um eine schlanke OpenLayers-Anwendung, die Kartendienste des Kantons Basel-Stadt bereits integriert hat. Im Folgenden werden Beispiele aufgeführt.
Die MapBS-API ist öffentlich zugänglich. Wie alle anderen APIs des Kantons Basel-Stadt benötigen Sie jedoch für den Zugang einen kostenlosen API-Key. Einen API-Key können Sie auf folgender Seite beantragen: https://api.geo.bs.ch. Der Key public_test_key kann als Beispiel verwendet werden, jedoch ist die Anzahl der Abfragen begrenzt.
Um die API nutzen zu können, fügen Sie einfach den folgenden Code hinzu:
<head>
<script type="module" crossorigin src="https://api.geo.bs.ch/mapbs-api/v1/mapbs-api.js?apikey=public_test_key"></script>
</head>
<body>
<div style="width:100%;height:300px;">
<map-bs />
</div>
</body>
Die MapBS Web-Component verfügt über verschiedene Attribute, die zur Konfiguration der Karte verwendet werden können. Eine Übersicht über die verfügbaren Attribute finden Sie in der folgenden Tabelle. Jedes Attribut kann nach der ersten Anzeige wie folgt geändert werden:
// Beispiel: Zoomlevel anpassen
document.querySelector('map-bs').setAttribute("zoom", "15");
Die MapBS Web-Component verfügt über verschiedene Events, die zur Interaktion mit der Karte verwendet werden können. Eine Übersicht über die verfügbaren Events finden Sie in der folgenden Tabelle. Jedes Property kann nach der ersten Anzeige wie folgt geändert werden:
// Beispiel: Auf das "change" Event hören
// Warten, bis die Javascript API bereit ist.
document.addEventListener("apiready", () => {
document.querySelector('map-bs').addEventListener("change", (e) => {
const data = e.detail;
console.log(e.detail);
});
});
<map-bs />
<map-bs background="luftbild" />
<map-bs center="2614484, 1267592" />
<map-bs centerto="Steinengraben" centertoobject="Strasse, Platz, Park" />
centertoobject ist für die Zentrieung der Bounding Box ein Pflichtattribut.
<map-bs centerto="2610980.179, 1266842.005, 2611145.501, 1267262.677" centertoobject="BBOX" />
or with EPSG:3857:
<map-bs centerto="844302.941,6032677.920,844546.280,6033302.425" centertoobject="BBOX" projection="EPSG:3857" />
<map-bs zoom="8" />
<map-bs projection="EPSG:3857" />
<map-bs legend="true" drawpoint="true" drawpolygon="true" drawline="true" mode="multi"/>
<map-bs search="true"/>
<map-bs embed="true"/>
<map-bs marker="true" />
<map-bs marker="true"
markerurl="https://map.geo.bs.ch/static/api/apihelp/img/parking.png" />
<map-bs marker="https://map.geo.bs.ch/static/api/apihelp/data.txt" />
<map-bs drawpoint="true"
drawpolygon="true"
drawline="true"
drawbox="true"
translate="true"
rotate="true"
modifyfeatures="true"
delete="true" />
<map-bs drawpoint="true"
drawpolygon="true"
drawline="true"
drawfillcolor="rgba(44,127,184,0.2)"
drawstrokecolor="rgba(44,127,184,1)"
/>
<map-bs drawpoint="true" drawpolygon="true" mode="multi" />
<map-bs id="geojsonEdit" drawpoint="true" drawpolygon="true" mode="multi" delete="true"/>
<map-bs id="mapOnChange" drawpolygon="true" drawbox="true" delete="true" mode="multi" />
<map-bs id="geojson" legend="true"/>
<map-bs id="mapbsapi-export"
drawpoint="true"
drawpolygon="true"
drawline="true"
drawbox="true"
delete="true"/>
<map-bs wmslayers="TK_TagesheimKita, BW_Allmendbewilligungen_Bauinstallation" legend="true" wmstimefrom="2025-01-01" wmstimeto="2025-06-30" />
<map-bs wmslayers="TK_TagesheimKita, BW_Allmendbewilligungen_Bauinstallation" inactivewmslayers="TK_TagesheimKita" legend="true" />
<map-bs wmslayers="BW_Allmendbewilligungen_Bauinstallation,TK_TagesheimKita" queryablelayers="BW_Allmendbewilligungen_Bauinstallation,TK_TagesheimKita" legend="true" />
<map-bs wmslayers="BW_Allmendbewilligungen_Bauinstallation,TK_TagesheimKita" queryablelayers="BW_Allmendbewilligungen_Bauinstallation,TK_TagesheimKita" texts='{"mapbs_bw_detail_belegung": "Belegung","mapbs_bw_kalender_strasseplatz": " Kalender starsse/platz","bw_belegungs_art_bez":"Belegungsart","bw_belegung_id":"Bewilligungsid","bw_begehren_id":"BegehreniId","bw_art_des_begehrens_bez":"Art des Begehren","bw_bezeichnung":"Bezeichnung","bw_belastungs_art_bez":"Belastungsart","bw_datum":"Datum","bw_antragsteller":"Antragsteller"}' />
<map-bs wmslayers="BW_Allmendbewilligungen_Bauinstallation,TK_TagesheimKita" queryablelayers="BW_Allmendbewilligungen_Bauinstallation,TK_TagesheimKita" overlay="false" />
<map-bs wmslayers="geoadmin:ch.bfs.gebaeude_wohnungs_register, geoadmin:ch.swisstopo.swisstlm3d-wanderwege, TK_TagesheimKita" inactivewmslayers="geoadmin:ch.swisstopo.swisstlm3d-wanderwege" wmsurls="geoadmin:https://wms.geo.admin.ch/" legend="true" />
<map-bs loginrequired="true" wmslayers="LS_BaumreiheGeplant"/>