ym.services.Area
Initialisierung
Die Klasse Area holt sich anhand der GeoJson-WebService-Schnittstelle die Polygone einer Region.
Wird die Area-Klasse ohne erweiterte Kartenfunktionalitäten eingesetzt, kann wie folgt auf das GeoJson zugegriffen werden:
Codebeispiel: Initialisierung Flächenservice
ym.ready(function () {
   var area = new ym.services.Area();
   area.on('success', function (request, response) {
      console.log(response.body);
   });
   area.load({lat: 51.163375, lng: 10.447683});
});Constructor(options)
Der Konstruktor nimmt dieselben Optionen entgegen, die auch die Klasse ym.provider.GeoJSON entgegennimmt.
Methoden
Area.load(LatLng, levels, providerId) ab v3
Lädt GeoJson-Polygone vom GeoJson-WebService.
Parameter: latLng
Die Geo-Koordinate, in der gesucht werden soll.
Parameter: levels
Optional; Standard: [1, 2]. Es können mehrere Werte übegeben werden.
| Level | Bedeutung | 
|---|---|
| 0 | Land | 
| 1 | Bundesland | 
| 2 | Regierungsbezirk | 
| 3 | Landkreis | 
| 4 | PLZ | 
| 5 | Gemeinde | 
| 6 | Stadtteil | 
Parameter: providerId
Optional; Standard: OSM
Beispielaufruf
area.load({lat: 51.163375, lng: 10.447683});  Area.addTo(layer) ab v3
Die addTo-Methode dient dazu, einen Bereich für einen Kartenlayer zu registrieren und automatisch zu aktualisieren, sobald ein neues GeoJson verfügbar ist. Das bedeutet, dass man kein weiteres GeoJson-Objekt erstellen und man sich um den Success-Listener nicht kümmern muss. Ab dem Zeitpunkt der Registrierung auf den Layer wird die Darstellung des GeoJSON immer aktualisiert, sobald ein neuer Request an die GeoJSON-Schnittstelle stattfindet. Der Kartenlayer muss hierbei eine Instanz von ym.provider.Map sein.
Parameter: layer
Der von ym.provider.Map abgeleitete Kartenlayer, auf dem der Bereich gezeichnet werden soll.
Beispielaufrufe
Das Beispiel ist vollständig; Sie können es lokal in einer Datei abspeichern und im Browser aufrufen. Sie müssen lediglich den Wert für den apiKey vorher ersetzen.
Im ersten Beispiel werden die administrativen Level 1 bis 3 angefordert, das heißt, Bundesland, Regierungsbezirk und Landkreis.
Codebeispiel: Beispielaufruf (Lvl. 1 - 3)
<!DOCTYPE html>
<html>
<head lang="en">
	<meta charset="UTF-8" />
</head>
<body>
	<!-- Stelle, an der eine Karte angezeigt werden soll. Auf die ID wird unten im Skript verwiesen. -->
	<div id="map" style="height: 400px; width: 700px;"></div>
	<!-- Laden der SmartMaps-API. -->
	<script src="https://www.yellowmap.de/api_rst/api/loader/?apiKey={API_KEY}&libraries=free-3"></script>
	
	<!-- Zugriff auf die SmartMaps-API. -->
	<script>
		ym.ready(function (modules) {
		   var provider = modules.provider;
		   var map = new provider.Map("map", {
			  center: new provider.LatLng(51.163375, 10.447683), // Mittelpunkt von Deutschland
			  zoom: 6
		   });
		   var area = new ym.services.Area({
			  onEachFeature: function (feature, layer) {
				 var popupContent = "";
				 for (var k in feature.properties) {
					popupContent += "<b>" + k + "</b> " + feature.properties[k] + "<br>";
				 }
				 layer.bindPopup("<pre>" + popupContent + "</pre>");
			  }
		   });
		   area.addTo(map);
		   area.load(map.getCenter(), [1,2,3]);
		   
		   window.map = map;
		});
	</script>
</body>
</html>Alternativ kann man eigenhändig instanziieren und den Success-Listener verwenden:
Codebeispiel: Beispielaufruf (Success-Listener)
<!DOCTYPE html>
<html>
<head lang="en">
	<meta charset="UTF-8" />
</head>
<body>
	<!-- Stelle, an der eine Karte angezeigt werden soll. Auf die ID wird unten im Skript verwiesen. -->
	<div id="map" style="height: 400px; width: 700px;"></div>
	<!-- Laden der SmartMaps-API. -->
	<script src="https://api.yellowmaps.eu/api_rst/api/loader/?apiKey={API_KEY}&libraries=free-3"></script>
	
	<!-- Zugriff auf die SmartMaps-API. -->
	<script>
		ym.ready(function (modules) {
		   var provider = modules.provider;
		   
		   var map = new provider.Map("map", {
			  center: new provider.LatLng(51.163375, 10.447683), // Mittelpunkt von Deutschland
			  zoom: 6
		   });
		   
		   var geoJson = new provider.GeoJSON(null, {
			  onEachFeature: function (feature, layer) {
				 var popupContent = "";
				 for (var k in feature.properties) {
					popupContent += "<b>" + k + "</b> " + feature.properties[k] + "<br>";
				 }
				 layer.bindPopup("<pre>" + popupContent + "</pre>");
			  }
		   });
		   var area = new ym.services.Area();
		   area.on('success', function (request, response) {
			  geoJson.addData(response.body);
		   });
		   
		   area.load(map.getCenter(), [1,2,3]);
		   geoJson.addTo(map);
		   
		   window.map = map;
		});
	</script>
</body>
</html>Area.removeFrom(layer) ab v3
Entfernt das GeoJson vom Layer.
Ereignisse
Die Basis der Area-Klasse ist die Request-Klasse. Entsprechend gibt es auch die Event-Listener success und error, die ankündigen, ob eine Anfrage erfolgreich war oder fehlgeschlagen ist.