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:CRS84MERCATOR := 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}"
}
}