ym.services.GeoJsonService

Überblick

Die abstrakte Klasse GeoJsonService ist die Basis-Klasse für alle unsere GeoJSON-WebService-Aufrufe.

Initialisierung

constructor(name, path, options, defaults)

Name Beschreibung Datentyp Standardwert
name Der Name ist der als String ausgeschriebene Name der Klasse; zum Beispiel „MyAwesomeClass“.
[erfoderlich]
string  
path Dies ist der WebService Pfad, auf dem alle Suchen im Rahmen der erbenden Klasse durchgeführt werden soll; zum Beispiel „api_rst/v2/geojson/geocode“ für eine Klasse, die den Geocoder ansprechen soll.
[erfoderlich]
string  
options Settings, die die Standard-Settings überschreiben sollen. Diese Options werden automatisch auch an das GeoJSON Objekt weiter gereicht. Das bedeutet, alle Options vom GeoJSON Objekt können auch hier zum Einsatz kommen.
[optional]
object  
defaults Standard-Settings, die die erbende Klasse vorgeben kann.
[optional]
object  

Beispiel-Implementierung

Um einen neuen GeoJSON-WebService anzumelden, wird die Klasse GeoJsonService genutzt:

function MyWebService(options) {
    ym.services.GeoJsonService.call(this, "MyWebService", "path/to/your/webservice", options, {
        defaultA: 10,
        defaultB: "hello, world!"
    });
}
 
// Erzeugt eine Vererbung von ym.services.GeoJsonService und fügt dem Prototyp der Klasse ein Mixin-Objekt hinzu.
ym.util.inherits(MyWebService, ym.services.GeoJsonService, {
 
    // Überschreibt die Methode send.
    send: function (myData) {
        ym.services.GeoJsonService.prototype.send.call(this, {
            // ... GeoJSON-Deklaration für die Anfrage ...
        });
    }
});

WebService ausführen:

var map = new ym.modules.Map("{...}");
 
var myWebService = new MyWebService({ defaultB: "hello, universe!" });
console.log(myWebService.options); // => { defaultA: 10, defaultB: "Hallo Universum!" }
 
// Jedes Mal, wenn eine Antwort eintrifft, wird das GeoJSON auf der Karte aktualisiert.
myWebService.addTo(map);
 
myWebService.send("{ ... your data ... }");

Direkt in die Karte integrieren:

var myWebService = new MyWebService({ defaultB: "hello, universe!" });
console.log(myWebService.options); // => { defaultA: 10, defaultB: "hello, universe!" }
 
myWebService.on('success', function (req, res) {
    console.log(res.body); // Für die Kartenintegration muss es ein gültiger GeoJSON sein,
});
 
myWebService.send("{ ... your data ... }");

Methoden

getBounds() ab v3

Gibt das umgebende Rechteck des GeoJSON-Objekts zurück. Die Methode kommt erst zum Einsatz, nachdem a) eine Karte registriert ist und b) bereits Daten geladen wurden.

LatLngBounds

Rückgabe

addTo(map) ab v3

Zeichnet das interne GeoJSON-Objekt auf die Karte.

Parameter

Name Beschreibung Datentyp Standardwert
map   Map  

Rückgabe

this

removeFrom(map) ab v3

Entfernt das GeoJSON von der Karte.

Parameter

Name Beschreibung Datentyp Standardwert
map   Map  

Rückgabe

this

coordFormatMapping() ab v3

SmartMaps besitzt zur besseren Lesbarkeit eine Aufzählung (enum) mit verschiedenen Koordinatenformaten. Diese repräsentieren Standards, die für das GeoJSON übersetzt werden.

Parameter

Name Beschreibung Datentyp Standardwert
coordFormat SmartMaps eigene Koordinatenformat-Aufzählung:
GEODECIMAL_POINT := urn:ogc:def:crs:OGC:1.3:CRS84
MERCATOR := urn:ogc:def:crs:EPSG::900913
[optional]
string GEODECIMAL_POINT

Rückgabe

Als Rückgabe wird einer der übersetzten Codes in properties.name mitgeliefert:

{
    "type": "name",
    "properties": {
        "name": "{formatierte Zeichenkette}"
    }
}