Web-Geoservices. Überblick über moderne Lösungen



Als Teil fast jedes Online-Produkts können Sie eine Aufgabe erfüllen, für die ein bestimmter Dienst in Bezug auf Karten, Geokodierung und Geopositionierung erforderlich ist. Persönlich arbeite ich seit fast 10 Jahren an einem Online-Immobilienkatalog und habe im Rahmen einer Reihe anderer Projekte Erfahrung mit der Verwendung spezifischer Funktionen verschiedener Online-Geodienste.

In diesem Artikel werde ich die Geo-Aufgaben untersuchen, mit denen Programmierer am häufigsten konfrontiert sind, einen kurzen Überblick über die Dienste geben, die Lösungen für diese Probleme bieten, und meine Erfahrungen mit der Verwendung dieser Dienste teilen.

Ich zähle auch auf die Teilnahme von Kommentatoren - wenn Sie in der Rezension eine Ungenauigkeit in der Beschreibung bemerken, den Mangel an Ihrem guten Service oder Sie haben nur etwas zu dem hinzuzufügen, was Sie bereits geschrieben haben - schreiben Sie in die Kommentare, ich werde alles im Haupttext sammeln, damit ich für die Zukunft immer eine gute Liste von Werkzeugen zur Verfügung habe für alle Gelegenheiten.

Inhaltsverzeichnis




Karten auf der Site anzeigen


Eine sehr beliebte Aufgabe ist es, Online-Karten auf einer Site anzuzeigen. Um beispielsweise genau anzuzeigen, wo sich Ihr Büro auf der Karte befindet. Oder wo Sie das abholen können, was der Ersteller der Anzeige verkauft.

Zum Anzeigen von Karten werden zwei Haupttypen von APIs verwendet:

  • Javascript API (interaktiv)
  • Statische API (statisch)

Javascript API


Alle Dienste, die ich entwickelt habe, funktionieren hauptsächlich mit Russland. Daher werde ich über die APIs sprechen, die ich selbst verwendet habe und die bei uns beliebt sind. Ich weiß, dass Bing und andere Kartenanbieter APIs haben, aber ich habe sie nicht verwendet.

Mit der Javascript-API können Sie eine interaktive Karte auf der Site anzeigen, mit der Sie zoomen, Markierungen anzeigen und mit der Karte interagieren können (Markierungen ziehen, QuickInfos anzeigen usw.).

Javascript API Yandex.Maps



Javascript API Google Maps



2GIS API


  • Sehr gute Karten, aber nicht überall.
  • Tschüss kostenlos
  • Die API-Funktionalität ist schwächer als bei Yandex / Google, kann jedoch mithilfe von Leaflet-Modulen erweitert werden
  • Es gibt aber Grundrisse für Einkaufszentren
  • api.2gis.ru/doc/maps/ru/quickstart

Azure-Karten



Mapbox


  • docs.mapbox.com/api/maps
  • Süße Karten für Web und Mobile.
  • Ich kann mich irren, aber die Karten scheinen nur auf Englisch zu sein
  • Für mobile Anwendungen können Sie bis zu 25.000 Benutzer pro Monat und im Internet bis zu 50.000 Downloads pro Monat kostenlos herunterladen


Statische API


Die statische API kann verwendet werden, wenn Sie nur ein Kartenbild ohne Interaktivität anzeigen müssen. Sie möchten beispielsweise eine Karte an eine E-Mail anhängen oder dem Benutzer erlauben, eine Wegbeschreibung an Sie zu drucken. Nun, oder Ihr Designer hat ein Layout gezeichnet, in dem eine Karte anstelle des Hintergrunds verwendet wird - das Laden vollständiger JS-Karten für eine solche Aufgabe scheint überflüssig. Ein statisches Bild kann auch als Vorschau verwendet werden, um das Laden einer Seite durch den Benutzer zu beschleunigen - und um sie interaktiv zu gestalten.

Statische API Yandex.Maps



Statische API Google Maps



Statische 2GIS-API


  • Aus irgendeinem Grund wird die Site als "veraltet" aufgeführt.
  • Tschüss kostenlos
  • Maximale Größe 1280x1280
  • Es gibt nicht überall
  • api.2gis.ru/doc/maps/1.0/static

Mapbox


  • docs.mapbox.com/api/maps
  • Ich kann mich irren, aber die Karten scheinen nur auf Englisch zu sein
  • Maximale Größe 1280x1280
  • Kostenlose bis zu 25.000 Kartendownloads pro Monat


Geokodierung


Geokodierung ist ein Prozess, mit dem Sie die Koordinaten eines Objekts an seiner Adresse ermitteln können. Nun, oder umgekehrte Geokodierung - finden Sie anhand der Koordinaten heraus, welche Art von Geoobjekt sich dort befindet. Tatsächlich arbeiten alle Geokodierungsdienste mit Adressen, die in einem beliebigen Format eingegeben wurden, und bringen sie gleichzeitig auf ihren Standard. Ich habe derzeit keine völlig kostenlosen Geokodierungsdienste auf dem Markt gefunden.

Typische Anwendungen der Geokodierung sind die Anzeige der vom Benutzer eingegebenen Adresse auf der Karte oder umgekehrt (umgekehrt) - der Benutzer hat eine Markierung auf der Karte angebracht, diese muss in eine Adresse umgewandelt werden.

Geocoder Yandex.Map


  • Es gibt einen kostenlosen Preis, der auf 25.000 Anfragen pro Tag begrenzt ist.
  • Neben der Anzahl der Anfragen ist diese auch durch die Lizenzvereinbarung begrenzt - die Codierungsergebnisse können nicht ohne Karte gespeichert und verwendet werden (sondern können zwischengespeichert werden), sie dürfen nur auf Yandex-Karten und nur im Rahmen öffentlicher Dienste (für jedermann zugänglich oder mit offener kostenloser Registrierung) angezeigt werden.
  • Funktioniert hervorragend in Russland, sowohl direkt als auch umgekehrt.
  • tech.yandex.ru/maps/geocoder

Tipps von DaData


  • DaData verfügt über einen Hinweisdienst, mit dem Sie die automatische Vervollständigung von vom Benutzer eingegebenen Adressen implementieren können.
  • Es enthält die Funktionen eines Geocoders (es kann Koordinaten nach Adresse und Adresse nach Koordinaten bereitstellen).
  • Es funktioniert nur in Russland, die Beschichtung ist lahm - bei Millionären auf einem Niveau von 75-95%, in Russland durchschnittlich etwa 50%
  • 10.000 Anfragen pro Tag sind kostenlos, das Angebot erlaubt jedoch nicht die vollständige Verwendung im automatischen Modus. Für die automatische Geokodierung müssen Sie den Standardisierungsdienst verwenden.
  • dadata.ru/api/suggest/address

Google Maps Geocoding API




Graphhopper



Mapbox


  • docs.mapbox.com/api/search
  • Die schwache Basis der Straßen in Russland, zumindest in Kasan, die Straßen, auf denen ich teste - konnte ich nicht finden
  • Geben Sie bis zu 100.000 Anfragen pro Monat frei

OpenStreetMaps Nominatim



2GIS


  • In der Dokumentation für die Javascript-API wurde die Existenz von Geokodierungsfunktionen deklariert, aber tatsächlich habe ich in der Dokumentation keine Verwendung gefunden. Vielleicht während es in der Entwicklung ist.



Adressen analysieren und automatisch vervollständigen


Manchmal ist es erforderlich, dass der Benutzer eine Adresse in einem zufälligen Format eingibt und diese Adresse dann in strukturierte Daten umwandelt - getrennt den Namen des Landes, der Region, der Stadt, der Straße und der Hausnummer. Dies ist für alle Dienste erforderlich, die mit Immobilien arbeiten. Es ist erforderlich, doppelte Adressen zu ermitteln, E-Mail-Belege auszufüllen usw.

Grundsätzlich bewältigen alle Geokodierungsdienste aus der obigen Liste diese Aufgabe problemlos. Bei der direkten Geokodierung geben sie neben den Koordinaten auch strukturierte Informationen über das gefundene Geoobjekt zurück.

Unabhängig davon ist der "Standardisierungs" -Dienst von DaData zu erwähnen - an Adressen aus Russland geben sie viele verschiedene nützliche Informationen zurück, 10 Kopeken für jede Adresse:
dadata.ru/api/clean/address

Außerdem verweise ich in diesem Abschnitt auf die Aufgaben, zusätzliche Informationen über die Adresse zu finden. Insbesondere diese Bestimmung des Stadtteils, zu dem die angegebene Adresse gehört, und die Suche nach den nächstgelegenen U-Bahn-Stationen sind wichtige Aufgaben, wenn wir nach Anzeigen nach Adresse suchen.

Definition des Gebiets innerhalb der Stadt


Im Moment habe ich zwei Lösungen gefunden, um das Gebiet innerhalb der Stadt zu bestimmen. Beide arbeiten nur für Russland.

Das erste und offensichtlichste ist DaData. Es wurde viel über diesen Dienst geschrieben, es ist wirklich ein guter Dienst für die Arbeit mit russischen Adressen (und dies ist keine Werbung). Probieren Sie es selbst aus, stellen Sie sicher.

Wenn Sie nicht von einem Drittanbieter abhängig sein möchten, habe ich eine andere Lösung angewendet, die ich bisher angewendet habe. Dies ist die Definition des Distrikts durch den Code OKATO- Adressen. Jede Adresse in Russland hat einen eigenen OKATO-Code - 11 Ziffern. Von diesen geben die ersten 5-8, abhängig von der Stadt, das Gebiet deutlich an.

Für die Städte, die ich brauche, habe ich einfach eine Datenbank mit OKATO-Codes für die Bezirke zusammengestellt. Ich habe so etwas wie dieses Array:

Beispiel OKATO-Codes


Die nächste Frage ist, wie man den OKATO-Adresscode herausfindet. DaData gibt es als Teil seiner Tipps und Standardisierungsdienste zurück. Es gibt eine Site okato-oktmo.rf, die unter der Adresse den OKATO-Code mit demselben Dadat anzeigt. Unsere Aufgabe ist es, den OKATO-Code unabhängig von der Dienstleistung unabhängig an der Adresse herauszufinden.

Dazu müssen wir die neueste FIAS-Datenbank herunterladen und eine Suche darauf einrichten. Auf dem Hub befindet sich bereits ein Artikel mit einem Beispiel zum Importieren der FIAS-Datenbank in MSSQL . Im Allgemeinen konfigurieren Sie die Suche nach FIASU, suchen dort die Adresse, die Sie benötigen, ermitteln den OKATO-Code anhand des OKATO-Codes aus den Listen der Bezirke, die Sie kennen - das Problem ist gelöst.

Wenn Sie kein Dampfbad nehmen möchten, um 60 Gigabyte XML-Dateien in Ihre Datenbank herunterzuladen, gibt es einen günstigeren, aber auch weniger funktionalen Dienst als den Dadata-Dienst, mit dem Sie mit der FIAS-Datenbank arbeiten können:
kladr-api.ru/docs

Suchen Sie nach nahe gelegenen U-Bahnstationen


Eine notwendige Funktion, insbesondere für Einwohner von Moskau, wenn Sie die nächsten U-Bahn-Stationen an der Adresse finden müssen. Für diese Aufgabe kenne ich derzeit zwei Lösungen:

Yandex Geocoder


Zuerst müssen Sie die Adresskoordinaten herausfinden. Dann übergeben wir diese Koordinaten wie bei der umgekehrten Geokodierung als Anforderungsparameter und den Typ des zurückgegebenen Toponyms kind = metro.
Ein separater Parameter legt die Größe des Bereichs fest, in dem nach der nächsten Station gesucht werden muss. Empirisch habe ich je nach Stadt Werte zwischen 0,02 und 0,05 Grad ausgewählt (in Moskau gilt ein Radius von 2 Kilometern von der U-Bahn immer noch als zu Fuß erreichbar, und in Kasan beträgt der Abstand zwischen den Stationen 1,5 Kilometer).

Es gibt auch ein Problem bei dieser Methode, dass manchmal die nächstgelegene U-Bahn in Koordinaten nicht immer die nächstgelegene ist (zum Beispiel auf der anderen Seite des Flusses oder so ähnlich). Sie können die nächstgelegene U-Bahn nur anhand der Zugänglichkeit mithilfe der Dienste zum Erstellen von Routen und Entfernungsmatrizen ermitteln, die im folgenden Artikel erläutert werden. Für eine grobe Bestimmung der nächstgelegenen Station ist der Yandex-Geocoder gut geeignet und ermöglicht es Ihnen, bis zu 25.000 Anfragen pro Tag kostenlos auszuführen.

DaData


Ja, und DaData kann bei dieser Aufgabe helfen. Im Rahmen der bezahlten Tarife des Dienstes "prompt" oder "standardization" werden auch die nächsten 3 U-Bahn-Stationen und Entfernungen zu ihnen an jede Adresse zurückgegeben.

Suche nach Organisationen


Eine häufige Aufgabe, wenn Sie Ihren Kunden eine Organisation in seiner Stadt zeigen möchten. Zum Beispiel verkaufen Sie Waren mit Lieferung und möchten einer Person alle Lieferpunkte einer Dienstleistung in ihrer Stadt zeigen. Oder Sie erstellen Layouts zum Drucken und zeigen dem Benutzer auf der Karte alle Druckereien, in denen er Ihr Layout drucken kann.

Yandex-Suche nach Organisation


  • tech.yandex.ru/maps/geosearch
  • Bis zu 500 Anfragen pro Tag sind kostenlos, sofern die Ergebnisse auf einer öffentlichen Karte angezeigt werden.
  • Suchergebnisse können nicht auf anderen Karten als Yandex gespeichert oder angezeigt werden.

Google platziert API


  • developer.google.com/places/web-service/usage-and-billing
  • Ein sehr kompliziertes Tarifsystem, das ich nicht ganz verstanden habe. Vielleicht schreibt jemand, der verwendet hat, in den Kommentaren.
  • Soweit ich weiß, sind grundlegende Abfragen kostenlos, aber alle ext. Informationen (Kontakte, Bewertungen, ...) werden separat berechnet.

2GIS


Gerüchten zufolge haben sie eine kostenpflichtige, private API für die Suche nach Organisationen. Ich habe es noch nicht geschafft, darauf zuzugreifen, und es gibt genug Suche nach Organisationen von Yandex für unsere Aufgaben.

Benutzerstandort nach IP


Eine häufige Aufgabe im Web besteht darin, zu verstehen, aus welcher Stadt ein Besucher auf Ihre Website gekommen ist. Für diese Aufgabe gibt es Lösungen in Form von Online-Diensten oder eigenständigen Lösungen für diejenigen, die nicht auf Dienste von Drittanbietern angewiesen sind.

Online-Service zur Ermittlung der Stadt nach IP - hier kann ich (für Russland) DaData noch einmal beraten: dadata.ru/api/detect_address_by_ip
Das Limit liegt bei 10.000 Anfragen pro Tag. Wenn Ihre Teilnahme 10.000 eindeutige Einträge pro Tag überschreitet, ist es sinnvoll, die auf Ihrem Server installierten Lösungen in Betracht zu ziehen. Weitere Informationen zu ihnen finden Sie im DaData-Test darüber, wie sie die zu verwendende Option ausgewählt haben .

Ich werde die Informationen kurz duplizieren:
IpGeoBase - war früher eine gute Site, die täglich aktualisiert wurde und eine Datenbank mit IP-Adressen und ihren jeweiligen Städten in einem verständlichen maschinenlesbaren Format bereitstellte , das leicht in jede Datenbank importiert werden kann. Leider wurde die Aktualisierung im Jahr 2017 eingestellt.
ipgeobase.ru

SypexGeo - wird noch aktualisiert, es kommt in Form eines PHP-Skripts und einer Datenbank dafür in seinem eigenen Format. Funktioniert schnell, bestimmt gut
sypexgeo.net/de/download

MaxMind bietet an, kostenlose Datenbanken mit reduzierter Genauigkeit und einer separaten API in verschiedenen Programmiersprachen herunterzuladen. Genauere Datenbanken sind als Teil kostenpflichtiger Produkte verfügbar.
dev.maxmind.com/geoip/geoip2/geolite2

Bestimmen des Standortes des Benutzers anhand von Koordinaten


Die Aufgabe ähnelt der Aufgabe der umgekehrten Geokodierung mit geringfügigen Unterschieden.

Manchmal müssen wir den Standort des Benutzers bestimmen, wenn wir seine Koordinaten genau kennen (z. B. haben wir sie mithilfe der GPS-Sensoren des Geräts oder der Geolocation-API im Browser ermittelt). Es gibt zwei Möglichkeiten: Die umgekehrte Geokodierung gibt den Namen des Ortes zurück, an dem sich der Benutzer befindet. Aber was passiert, wenn sich der Nutzer irgendwo auf der Autobahn zwischen den Städten oder in den Vororten oder nur auf einem sauberen Feld befindet und Anzeigen für den Verkauf von Grundstücken auf diesem Feld sehen möchte? Nicht immer wird der Reverse Geocoder damit fertig.

In diesem Fall mache ich das persönlich - ich habe alle Koordinaten russischer Städte in meiner Datenbank, in denen wir Anzeigen haben und mit denen wir im Allgemeinen arbeiten. Und anhand der Koordinaten des Benutzers bestimme ich einfach die ihm am nächsten gelegene Stadt aus unserer Datenbank mit einer einfachen Anfrage:

ORDER BY (|lng - :lng| + |lat - :lat|) ASC LIMIT 1 


Routenbau


Manchmal müssen Sie eine Route von einem Punkt zum anderen erstellen. Erstellen Sie beispielsweise eine Standortkarte vom Standort des Benutzers zu Ihrem Büro. Es gibt kostenpflichtige Lösungen von Yandex und Google. Der Hauptunterschied besteht darin, dass Yandex ein Abonnement mit einer jährlichen Zahlung verkauft. Google berechnet Anfragen nach Stück und zieht einmal im Monat Geld von der Karte ab.
Google hat auch ein Premium-Abonnement, das einige zusätzliche Funktionen bietet (z. B. das Erhöhen der maximalen Größe des statischen API-Images) und eine Einzahlung auf Limits. Es gibt auch eine Lösung von 2GIS - die teuerste in Bezug auf 1 gebaute Route.

Die Aufgaben zum Erstellen von Routen sind in mehrere Unteraufgaben unterteilt:
  1. Das Erstellen einer Route von Punkt zu Punkt ist verständlich
  2. Die Entfernungsmatrix - ein Dienst, mit dem Sie eine Matrix aus Entfernungen und Transitzeiten zwischen einer Reihe von Abfahrts- und Ankunftsorten erstellen können. Zum Beispiel, wenn Sie die optimalen Routen für mehrere Kuriere berechnen müssen, die Waren aus verschiedenen Lagern an verschiedene Kunden liefern müssen. Oder bieten Sie Reinigungsdienste an und müssen herausfinden, welcher Reiniger von zu Hause aus bequemer ist, um zu den heutigen Bestellungen zu gelangen und ein optimales Schema für den Umzug von Reinigern zu erstellen.
  3. Isochrone API - Aufbau um einen Punktbereich, der gleichzeitig erreicht werden kann. Beispiel: "Finden Sie alle Cafés innerhalb von 15 Minuten zu Fuß von der Position des Benutzers entfernt."

Verschiedene Anbieter bieten für all diese Aufgaben unterschiedliche Lösungen an.

Dank 3aiats wurde eine kostenlose Open Source-Lösung gefunden -

Graphhopper


  • www.graphhopper.com/open-source
  • Wird auf Ihrem Server installiert, verwendet OpenStreetMap zum Erstellen von Routen und wird in Java ausgeführt
  • Es gibt eine kostenlose und kostenpflichtige API für diejenigen, die diese Software nicht auf ihrem Server installieren möchten.
  • Es gibt eine API zum Geokodieren, Erstellen von Routen, Erstellen von Entfernungsmatrizen und Optimieren von Routen sowie Isochron


MapBox (danke ne_kotin )


  • docs.mapbox.com/api/navigation
  • Es gibt eine API zum Geokodieren, Erstellen von Routen, Erstellen von Entfernungsmatrizen und Optimieren von Routen.
  • Geben Sie bis zu 100.000 Anfragen pro Monat frei


Yandex


Allen Yandex-Diensten für Strecken ist gemeinsam, dass sie in Russland, Abchasien, Aserbaidschan, Armenien, Weißrussland, Georgien, Kasachstan, Kirgisistan, Moldawien, Tadschikistan, der Türkei, Usbekistan und der Ukraine verkehren.
  • tech.yandex.ru/routing/router
  • tech.yandex.ru/routing/distance_matrix
  • Preise ab 120.000 Rubel pro Jahr
  • Es gibt eine API zum Erstellen von Routen und Entfernungsmatrizen
  • Beinhaltet Staus, einschließlich solcher, die für eine bestimmte Zeit in der Zukunft vorhergesagt werden
  • Kann Wanderrouten mit persönlichen und öffentlichen Verkehrsmitteln bauen

Es gibt einen Dienst app.swizz.ru , der die Yandex-API zum Erstellen von Routen verwendet. Der Dienst verfügt nicht über eine eigene API und es treten Probleme mit Grenzwerten von Yandex auf. Im Wesentlichen können Sie jedoch sehen, wie der Yandex-Routengenerator dort funktioniert. Vielen Dank für den Link 3aiats

Google


Der Hauptunterschied zu Yandex besteht in der Preisgestaltung für jede Anfrage. Bei kleinen Mengen sind Tarife mit Google rentabler, bei großen mit Yandex.
Außerdem hat Google keine Einschränkungen für die Länder, in denen Routen erstellt werden.

Google Richtungen api


  • developer.google.com/maps/documentation/directions/intro
  • Der Tarif beträgt 5 USD oder 10 USD pro 1000 Anfragen. 10 - wenn die Optimierung unter Berücksichtigung von Staus und Zwischenwegpunkten verwendet wird. 5 - wenn nur eine Route zwischen 2 Punkten.
  • Durch Funktionen ein Analogon des Yandex-Dienstes zum Erstellen von Routen zwischen 2 Punkten, hat aber mehr Einstellungen
  • Insbesondere können mehrere alternative Routen angeboten werden


Google Distance Matrix API




Google Roads API


Ein einzigartiger Google-Dienst, mit dem Sie mit den Straßen arbeiten können, auf denen Ihr Fahrzeug fährt.
Verbindet die Punkte Ihrer Route automatisch mit den Straßen, zeigt das beste Verkehrsmuster und alle Informationen zu den Straßenabschnitten, denen Sie unterwegs begegnen.
Es weiß, wie die nächsten Straßenabschnitte mit Punkten verknüpft werden (z. B. mithilfe eines GPS-Tracks, der hin und her springt, um anzuzeigen, auf welchen Straßen die Route tatsächlich gefahren wurde).
Kann Geschwindigkeitsbegrenzungen auf den Straßen auf der Route anzeigen.



WikiRoutes


  • wikiroutes.info/developers
  • Bauen Sie Routen mit öffentlichen Verkehrsmitteln
  • Es gibt eine kostenpflichtige API für die Integration in die Site


Azure-Karten




2Gis Logistik


  • logistics.2gis.ru
  • Service für den Bau von Routen
  • 5 Routen pro Tag für 3.500 Rubel pro Monat, bereit, eine Grenzwerterhöhung zu besprechen
  • Für etwas Geld gibt es die Verfolgung von Kurierbewegungen und anderen zusätzlichen Funktionen


Dienstleistungen zur Optimierung der Logistik


Als separate Klasse von Dienstleistungen für den Bau von Routen sollten vorgefertigte Lösungen zur Optimierung der Logistik hervorgehoben werden, die auf der Grundlage der Anzahl der Kuriere / Fahrzeuge auf der Strecke berechnet werden. Tatsächlich kombinieren sie Tools zum Erstellen von Routen und andere Services, um Ihre Logistik so weit wie möglich zu optimieren. Da es sich um recht komplexe Nischenlösungen handelt, habe ich sie zu einer Liste zusammengefasst.
Vielen Dank für das Hinzufügen zur Liste 3aiats


Fazit


In der heutigen Welt finden Sie einen vorgefertigten Service für praktisch jede Aufgabe, die Sie lösen müssen, oder mithilfe einer Kombination von Services aus der obigen Liste. Die Frage ist nur, welche Kosten diese Lösung für Sie hat.

Viele Dienste wechseln mit zunehmender Beliebtheit zu immer härteren Monetarisierungssystemen - genau wie die kostenlosen Karten von Google einmal vollständig bezahlt wurden, bewegt sich Yandex allmählich in diese Richtung.

Es gibt offene OpenStreetMaps, mit denen Sie anscheinend alle Probleme aus der Liste lösen können. Dazu müssen Sie sie jedoch selbst bereitstellen und zusätzlich zu Ihrem Projekt eine gesamte Infrastruktur für Karten separat verwalten - soweit dies erforderlich ist, entscheidet jeder für sich.

Wahrscheinlich habe ich in der Rezension keine ausgezeichneten Dienste angegeben, die Sie nutzen, oder Sie haben die Dienste aus der Rezension genutzt, und Sie haben etwas zu dem hinzuzufügen, was bereits geschrieben wurde - schreiben Sie in die Kommentare, ich werde den Text ergänzen.

Source: https://habr.com/ru/post/de462011/


All Articles