1. Home
  2. Dokumente
  3. Karten
  4. Datentypen
  5. ym.Services
  6. ym.services.GeoJsonService

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 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 ... }");

Direkt in die Karte integrieren:

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 ... }");

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.

Rückgabe

LatLngBounds

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}"
    }
}

 

Wie können wir helfen?