Zum Inhalt

ym.services.GeoJsonService

Überblick

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

Initialisierung

Constructor(name, path, options, defaults)

Name Beschreibung Datentyp Standardwert
name Der Name der Klasse, ausgeschrieben als String; zum Beispiel "MyAwesomeClass". string
path Dies ist der WebService-Pfad, unter dem alle Suchen im Kontext der erbenden Klasse durchgeführt werden sollen; zum Beispiel "api_rst/v2/geojson/geocode" für eine Klasse, die den Geocoder ansprechen soll. string
options Einstellungen, die die Standardeinstellungen überschreiben sollen. Diese Optionen werden auch automatisch an das GeoJSON-Objekt übergeben. Das bedeutet, dass hier auch alle Optionen des GeoJSON-Objekts verwendet werden können. object
defaults Standardeinstellungen, die die erbende Klasse festlegen kann. object

Beispielimplementierung

Um einen neuen GeoJSON-WebService zu registrieren, wird die Klasse GeoJsonService verwendet:

function MyWebService(options) {
    ym.services.GeoJsonService.call(this, "MyWebService", "path/to/your/webservice", options, {
        defaultA: 10,
        defaultB: "hello, world!"
    });
}

// Creates an inheritance of ym.services.GeoJsonService and adds a mixin object to the prototype of the class
ym.util.inherits(MyWebService, ym.services.GeoJsonService, {

    // Overrides the send method.
    send: function (myData) {
        ym.services.GeoJsonService.prototype.send.call(this, {
            // ... GeoJSON declaration for the request ...
        });
    }
});

WebService ausführen

var map = new ym.modules.Map("{...}");

var myWebService = new MyWebService({ defaultB: "hello, universe!" });
console.log(myWebService.options); // => { defaultA: 10, defaultB: "hello, universe!" }

// Each time a response is received, the GeoJSON is updated on the map.
myWebService.addTo(map);

myWebService.send("{ ... your data ... }");

Direkt in die Karte einbinden

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); // For map integration it must be a valid GeoJSON,
});

myWebService.send("{ ... your data ... }");

Methoden

getBounds()

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

  • Rückgabe: LatLngBounds

addTo(map)

Zeichnet das interne GeoJSON-Objekt auf der Karte.

Parameter Beschreibung Datentyp Standardwert
map Map
  • Rückgabe: this

removeFrom(map)

Entfernt das GeoJSON von der Karte.

Parameter Beschreibung Datentyp Standardwert
map Map
  • Rückgabe: this

coordFormatMapping()

SmartMaps verfügt über eine Enumeration (Enum) mit verschiedenen Koordinatenformaten zur besseren Lesbarkeit. Diese repräsentieren Standards, die für das GeoJSON übersetzt werden.

Parameter Beschreibung Datentyp Standardwert
coordFormat SmartMaps' eigene Koordinatenformat-Enumeration: GEODECIMAL_POINT := urn:ogc:def:crs:OGC:1.3:CRS84, MERCATOR := urn:ogc:def:crs:EPSG::900913 string GEODECIMAL_POINT
  • Rückgabe: Als Rückgabe wird einer der übersetzten Codes in properties.name geliefert:
{
    "type": "name",
    "properties": {
        "name": "{formatted string}"
    }
}