Mehr

Den nächsten Punkt aus der Tabelle in PostGIS ermitteln?

Den nächsten Punkt aus der Tabelle in PostGIS ermitteln?


Ich habe eine Tabelle mit pgrouting-Knoten, die wie folgt strukturiert ist:

CREATE TABLEways_vertices_pgr ( id bigserial NOT NULL, cnt integer, chk integer, ein integer, eout integer, the_geom Geometrie(Point,4326), CONSTRAINTways_vertices_pgr_pkey PRIMARY KEY (id) )

PGouting erfordert die Knoten-ID, bevor es zwischen zwei Standorten routen kann. Meine Eingabe sind zwei Punkte (d.h. mit Lat & Long).

Wie erhalte ich die Knoten-ID vom Lat-long? Wie wähle ich den nächstgelegenen Knoten aus?


Ich habe diesen Link gefunden: http://www.sqlexamples.info/SPAT/postgis_nearest_point.htm

Basierend darauf habe ich folgende Funktion erstellt:

CREATE OR REPLACE FUNCTION get_nearest_node (IN x_long doppelte Genauigkeit, IN y_lat doppelte Genauigkeit) -- Eingabeparameter RETURNS TABLE -- Struktur der Ausgabe ( node_id bigint , dist integer -- Entfernung zur nächsten Station ) AS $$ BEGIN RETURN QUERY SELECT id as node_id, CAST (st_distance_sphere(the_geom, st_setsrid(st_makepoint(x_long,y_lat),4326)) AS INT) AS d FROMways_vertices_pgr ORDER BY the_geom <-> st_setsrid(st_makepoint(MIT 1; 4326) LI -- geometrischer Operator <-> bedeutet "Abstand zwischen" END; $$ SPRACHE plpgsql;

Diese Funktion gibt mir die Knoten-ID und die Entfernung


Und ein ähnliches Beispiel mit einer Shortest-Path-Abfrage finden Sie im pgRouting-Workshop: http://workshop.pgrouting.org/chapters/wrapper.html#route-between-lat-lon-points-and-return-ordered-geometry -mit-Überschrift

Aus der Funktion heraus genommen ist dies ähnlich wie bei Ihnen ohne die Entfernung:

SELECT id FROMways_vertices_pgr ORDER BY the_geom <-> ST_GeometryFromText('POINT(x y)',4326) LIMIT 1;

Beim Starten der Updateinstallation mittels 'zypper dup' kam heute folgende Meldung:

Schamanenpinguin

LWN.net Weekly Edition für den 31. März 2011

Über Googles Entscheidung, den Quellcode für die neueste Version von Android 3.0 zurückzuhalten, wurde viel Presse&mdashandringen&mdash gemacht. Es gab Behauptungen, dass Google dadurch verschiedene Lizenzen verletzt (oder sein wird). Obwohl diese Behauptung übertrieben ist, gibt es immer noch Gründe, über die hier getroffene Wahl unzufrieden zu sein, während man anerkennt, dass dies die Entscheidung von Google ist.

Business Week brach die Geschichte, dass Android 3.0 ("Honeycomb"), das auf Tablet-Geräte ausgerichtet ist, im Gegensatz zu früheren Versionen mehrere Monate lang nicht veröffentlicht werden würde, möglicherweise erst, wenn die nächste Version ("Ice Cream") fertiggestellt ist. Der Artikel zitierte Andy Rubin, Googles VP für Engineering und Leiter der Android-Gruppe, mit der Aussage, dass Honeycomb möglicherweise nicht für Telefone geeignet sei:

Die Besorgnis scheint zu sein, dass Anbieter Honeycomb nehmen, auf Telefonen (oder anderen Geräten mit kleinem Bildschirm) installieren und "eine wirklich schlechte Benutzererfahrung" schaffen könnten. Es gab sicherlich eine Reihe von Anbietern, die frühere, nicht Tablet-orientierte Versionen mit unterschiedlichem Erfolg auf Tablets brachten. Google scheint besorgt zu sein, dass die Android-Marke durch minderwertige Implementierungen verdorben wird. Das mag stimmen, aber es gibt andere Möglichkeiten, wie das Problem verhindert werden könnte.

Eine naheliegende Wahl ist die Android-Marke, mit der Google von Geräten verlangen könnte, dass sie bestimmte Mindeststandards erfüllen. Google übt bereits eine gewisse Kontrolle über seine Android-Anwendungen der Marke Google (wie Market, Maps und Gmail) aus, die vom Unternehmen lizenziert werden müssen. Dazu muss ein Gerät die Android-Kompatibilitätsdefinition erfüllen. Aber viele Hersteller von Low-End-Telefonen und -Tablets waren bereit, auf diese Anwendungen zu verzichten, den Quellcode zu nehmen und damit zu arbeiten - manchmal mit weniger als herausragenden Ergebnissen.

Google hat also einen anderen Weg gefunden, seinen Willen gegenüber Geräteherstellern durchzusetzen, die den Code nicht direkt vom Unternehmen lizenzieren: die Bereitstellung der Quelle einzustellen. Da eines der Ziele des Projekts darin bestand, "die GPL aus dem Benutzerbereich herauszuhalten", bedeutet dies, dass der Android-Benutzerbereich unter Nicht-Copyleft-Bedingungen lizenziert ist. Aber selbst wenn alles unter die GPL fallen würde, wäre Google als Urheberrechtsinhaber nicht verpflichtet, den Code freizugeben. Urheberrechtsinhaber sind nicht an die Lizenz gebunden, die sie anderen für die Verwendung ihres Codes zur Verfügung stellen.

So wie es ist, steht der Großteil des Codes unter der Apache Software License oder ähnlichen Bedingungen, was bedeutet, dass niemand den Quellcode angeben muss. Die große Ausnahme ist natürlich der Linux-Kernel, und man würde erwarten, dass Google GPL-kompetent genug ist, um diesen Code nicht zurückzuhalten. Für den Kernel befinden sich die interessanten Teile jedoch nicht unbedingt im Kernelbaum von Google, da es die Gerätehersteller sind, die Unterstützung und Treiber für ihre Plattformen hinzufügen. Wie wir gesehen haben, ist die GPL-Compliance bei Android-Tablets bestenfalls fleckig, so dass hier wahrscheinlich Lizenzprobleme auftreten.

Ein Teil des Aufruhrs um die Entscheidung von Google beruht auf der etwas irrigen Annahme, dass Android jemals ein echtes Open-Source-Projekt war. Es gab schon früh große Hoffnungen, dass daraus einer werden könnte, und bis jetzt hat Google seinen Code immer wieder über die Mauer geworfen, um den Open-Source-Geist des Projekts mehr oder weniger fortzusetzen. Aber im Gegensatz zu echten Open-Source-Projekten gab es nur begrenzte Versuche, eine Entwickler-Community rund um Android selbst aufzubauen, stattdessen gab es größtenteils nur die periodischen Code-Drops. Ein Großteil der Bemühungen zielte darauf ab, Anwendungsentwickler zu kultivieren, was recht gut funktioniert hat. Es ist schwer zu sagen, aber man könnte vermuten, dass die Offenheit des Android-Codes eine Rolle dabei spielte, wie schnell die Plattform von Anwendungsentwicklern angenommen wurde.

Man könnte argumentieren, dass Google die Android-Entwicklung im eigenen Haus halten musste, damit es mit dem unglaublich schnelllebigen Smartphone-Markt Schritt halten konnte. Als eine Art Gegenbeispiel könnte man MeeGo sicherlich anführen, das noch keine wirklich greifbaren Ergebnisse in Form von käuflichen Produkten hervorgebracht hat. MeeGo hat eindeutig eine langsam wachsende Entwickler-Community, obwohl es von zwei (jetzt wirklich einem) Unternehmen dominiert wird. Während MeeGo viel mehr Upstream-orientiert ist als Android, war seine Governance weitgehend von oben nach unten. Bisher war das Modell von Google deutlich erfolgreicher, aber MeeGo ist zu diesem Zeitpunkt wirklich erst ein Jahr alt.

Google hat viel Lärm darüber gemacht, wie "offen" Android ist, einschließlich Dinge wie Rubins berühmter Tweet als Antwort auf Steve Jobs: "The definition of open: 'mkdir android cd android repo init -u git://android.git. kernel.org/platform/manifest.git repo sync make' " Für Honeycomb wird das zumindest für die nächsten Monate nicht mehr wahr sein, was ausreicht, um einige Leute auf der Android-Plattform als Ganzes zu verärgern.

Google hat offensichtlich die Vorteile abgewogen, die es durch das Öffnen des Android-Codes hat, Bugfixes, Verbesserungen, gute Öffentlichkeitsarbeit und festgestellt, dass dies nicht ausreicht, um seine Bedenken auszuräumen. Es ist bedauerlich, dass wir zumindest für eine Weile nicht sehen können, was die CyanogenMod-Leute (und andere in der "Mod"-Community) mit Honeycomb gemacht haben könnten. Es gibt wahrscheinlich einige billige Tablet-Hersteller, die auch interessante Dinge damit hätten machen können. Während Google behauptet, sich Sorgen um die "Benutzererfahrung" zu machen, ist es ziemlich schwer, diesen Schritt als etwas anderes als eine Verschärfung der Kontrolle über die Plattform zu lesen. Hoffentlich ist dies nur ein Ausrutscher und die Dinge werden mit "Ice Cream" wieder "normal" sein, aber der Schaden könnte bis dahin bereits angerichtet sein.

In den letzten Wochen haben wir das Verhalten mehrerer Unternehmen (Red Hat und Google) verteidigt, die mit Vorwürfen wegen Lizenzverstößen konfrontiert wurden. In all diesen Fällen muss man dem Unternehmen jedoch nicht gefallen, um zu erkennen, dass es sich nicht um eine Lizenzverletzung handelt. Noch einmal, wir würden es viel lieber sehen, dass Google das Android-Projekt offen hält und es noch offener macht, aber anerkennt, dass es in seinem Recht ist, dies nicht zu tun. Mit etwas Glück werden andere Open-Source-Projekte den Weg weisen, so dass Google es in seinem Interesse findet, Android weiter zu öffnen. Wir werden sehen .

Here be Dragons: PostGIS 2.0 fügt 3D-, Rasterbild- und Topologie-Unterstützung hinzu

Dieser Artikel wurde von Nathan Willis beigesteuert

Das geographische Datenbanksystem PostGIS nähert sich seiner Version 2.0, einem wichtigen Update, das mehrere bedeutende neue Funktionen hinzufügt. PostGIS ist eine Erweiterung des PostgreSQL-Datenbankmanagers, die GIS-spezifische Datentypen und Funktionen implementiert. Ebenso wichtig ist jedoch die Tatsache, dass eine Vielzahl anderer Open-Source-Projekte für geografische Informationssysteme (GIS) PostGIS als Back-End-Datenquelle verwenden können, einschließlich GUI-Anwendungen und Server. Dieses Release 2.0 wird nicht nur aus Gründen der Geschwindigkeit und Stabilität ein wichtiger Meilenstein sein, sondern auch, weil es die Datenbank in drei neue Bereiche erweitert: Rasterdaten, Topologie und 3D.

PostGIS bietet Unterstützung für geometrische Primitive (Punkte, Linien, Polygone sowie "Sammlungen" und andere Datenstrukturen aller drei) sowie das Lesen, Transformieren und Schreiben einer Vielzahl von Standard-Geodatenformaten. GIS-Anwendungen erfordern häufig spezielle Operatoren zum Berechnen von Entfernungen und Flächen, Vereinigungen, Schnittpunkten und anderen Satzfunktionen, zusammen mit speziellen Suchtypen.

PostGIS implementiert diese Funktionalität, indem es sich an den Simple Feature Access for SQL-Standard des Open Geospatial Consortium hält, obwohl das Projekt nicht für die Konformitätstests bezahlt, die erforderlich sind, um sich als offizielle Implementierung zu bewerben. PostGIS ist seit 2001 in der aktiven Entwicklung und hat eine bemerkenswerte Bibliothek unterstützender GIS-Anwendungen aufgebaut, darunter GRASS GIS, gvSIG und MapServer. Es sind sogar kommerzielle Konnektoren verfügbar, um proprietäre GIS-Produkte in PostGIS-Datenbanken einzubinden.

Dennoch hat sich PostGIS in all dieser Zeit auf das konzentriert, was man als traditionelle, vektorbasierte 2D-Geometrie bezeichnen könnte. Das sollte man nicht als Schwäche Die meisten GIS-Anwendungen sind 2D- und vektorbasiert. Vektorbasierte Daten kodieren geografische Features als Formen: Punkte und Polygone auf einer Kartenprojektion, Linien, die Features verbinden usw.

Raster

Es stehen jedoch auch viele Daten als Rasterbilder zur Verfügung – zum Beispiel Luft- und Satellitenaufnahmen, die geokodiert werden können, damit sie richtig ausgerichtet und auf eine Karte umgeformt werden können. In den letzten Jahren arbeitete die PostGIS-Community an der Rasterunterstützung über ein Add-On-Paket, das ursprünglich WKT Raster hieß und später in PostGIS Raster umbenannt wurde.

Mit 2.0 wird seine Funktionalität vollständig in die Hauptanwendung integriert. Rasterbilder werden in speziellen Rastertabellen unterstützt, die aus jedem von der Geospatial Data Abstraction Library (GDAL) unterstützten Format geladen und in jedes von GDAL unterstützte Format exportiert werden können. Die Liste der unterstützten Formate wird ständig erweitert, aber im Moment listet das GDAL-Projekt mehr als 120 auf.

Natürlich ist das Laden und Exportieren nicht die eigentliche Arbeit, um neben Vektoren auch Rasterbilder zu unterstützen, daher fügt PostGIS 2.0 eine Reihe von Funktionen zum Analysieren und Bearbeiten der Daten in den Pixeln hinzu. Raster können in Geometrie "extrudiert" werden (z. B. Bereiche einer Farbe im Rasterbild in ein Polygon umwandeln), gemittelt und anderweitig untersucht werden. Raster können mit vorhandenen Funktionen bearbeitet werden (z. B. Berechnung des Schnittpunkts mit vektorgeometrischen Formen). Es wird auch möglich sein, importierte Raster direkt in der Datenbank zu bearbeiten, was die Tür zu allen möglichen Transformationen öffnet.

Die dritte Dimension

Es gibt auch keinen Mangel an 3D-Daten, die sich als interessant erweisen könnten, wenn die Datentypen zum Speichern und die Funktionen zu ihrer Transformation verfügbar sind. PostGIS 2.0 bietet umfassende Unterstützung für 3D, beginnend mit zwei Geometrietypen: polygonale Oberflächen und unregelmäßige Dreiecksnetzwerke (TINs). Polygonale Flächen sind genau das, was Sie sich vorstellen: dreidimensionale Flächen, die durch verbundene Polygone definiert werden. TINs definieren Oberflächen vollständig mit Dreiecken, aber die Größe der Dreiecke ist flexibel &ndash ähnlich einem Netz mit mehreren Auflösungen in einem 3D-Modellierungsprogramm. Ein TIN kann nur sehr wenige Dreiecke verwenden, um flachere Bereiche der Karte zu beschreiben, und mehr, um wichtige Features zu beschreiben. In beiden Fällen besteht die Unterstützung für die neue Geometrie nicht nur aus den grundlegenden Datentypen, sondern auch aus der Unterstützung der Operatoren bei wiederkehrenden Aufgaben wie der Suche nach Bereichen (und Volumen) von Regionen im neuen Format.

Zusätzlich zu den neuen Geometrietypen wurden die vorhandenen räumlichen Indizes 3D-fähig gemacht und eine Bibliothek mit 3D-Funktionen hinzugefügt. Auf diese Weise können GIS-Benutzer Entfernungen in drei Dimensionen berechnen, 3D-Schnittpunkte von Linien und Formen finden und 3D-Bounding-Boxen zurückgeben oder komplexe Dinge wie 3D-Kurzeste Pfade berechnen.

Die einfachste Anwendung von 3D in GIS besteht darin, Landschaftsmerkmale in drei Dimensionen zu modellieren, aber es gibt noch mehr. Viele andere Arten von geokodierten Daten können zur Modellierung und Analyse in eine 3D-PostGIS-Datenbank importiert werden. Ziehen Sie beispielsweise in Betracht, die Sichtbarkeit zwischen Gebäuden, die Ausbreitung von Funkwellen oder Flugvektoren zu berechnen. Alle beinhalten vertraute GIS-Operationen in 3D, obwohl es sich dabei nicht ausschließlich um "Mapping"-bezogene Aufgaben handelt.

Wie man 3D-Daten am besten ausgibt, ist eine Frage, die weitgehend die Domäne der Front-End-Anwendung bleibt (dazu später mehr. ), aber PostGIS 2.0 unterstützt die direkte Ausgabe von 3D-Daten in das XML-basierte X3D-Format. X3D wird vom Web3D-Konsortium definiert, das hart daran arbeitet, das Format in HTML5 zu akzeptieren. Unabhängig davon, ob HTML5 jemals die Einbindung von Inline-X3D-Szenen in den Seiteninhalt zulässt oder nicht, wird das Format wahrscheinlich in <canvas>-Elementen oder als eingebettete Objekte unterstützt.

Topologie

Die letzte große Erweiterung der PostGIS-Funktionalität in der Version 2.0 ist die Unterstützung für Topologie. In GIS-Begriffen ist Topologie nicht ein Hinweis auf topographische Karten. Es bedeutet vielmehr, Datentypen und Funktionen zu unterstützen, die mathematische Graphen implementieren. Mit anderen Worten, anstelle von Punkten, Linien und Polygonen verwendet die Topologie Knoten, Kanten und Flächen – möglicherweise sogar gerichtete und/oder gewichtete Kanten.

Die Umwandlung von Vektorgeometrie in Topologiedaten macht aus einer Sammlung von Formen eine mathematische Darstellung der Szene, einschließlich der Verbindung von Knoten und Regionen. Das menschliche Auge kann diese Verbindungen sofort herstellen, aber die Datenbank erfordert explizite Unterstützung, um sie auszudrücken. Das Einbinden der topologischen Version eines Karten-Layers in die Datenbank ermöglicht es der Anwendung, Pfadfindung, Routing und Flussanalysen durchzuführen, die mit Rohgeometrie nicht durchgeführt werden können.

Das kanonische Beispiel für diese Unterscheidung ist das Königsberg-Brückenproblem: Ein menschlicher Mathematiker (sagen wir Euler, um eine zufällig auszuwählen. ) kann sich eine Zeichnung der Stadt und ihrer sieben berühmten Brücken ansehen und ihren Graphen implizit als Knoten und Kanten berechnen . Eine PostGIS-Anwendung kann nicht dasselbe tun, wenn nur die Formen des Flusses und der Landmassen. Die Daten müssen zuerst konvertiert werden.

PostGIS 2.0 wird in der Lage sein, Standardgeometrie in topologische Daten umzuwandeln, die Topologie zu validieren und Knoten und Kanten zu bearbeiten. Die Topologie kann für die Ausgabe auch in die standardmäßige Geography Markup Language (GML) konvertiert werden.

Dieser Schritt stellt den Beginn der Topologieunterstützung in PostGIS dar. Zu den zukünftigen Anwendungen gehören Netzwerkfluss (zB Verkehrsmodellierung), Krisenmanagement für die Katastrophenplanung (zB minimale Spannbäume und kürzeste Wege für die Logistik), Auto-Map-Coloring, "Abdecken" von Problemen und vieles mehr. Diejenigen von uns, die nicht im GIS-Bereich tätig sind, neigen zum Beispiel dazu, an GIS-Arbeit im nationalen Mapping-Maßstab zu denken, aber überlegen Sie, wie wertvoll die Topologieunterstützung PostGIS für die Netzwerkflussanalyse oder das Routing von Versorgungseinrichtungen innerhalb eines Gebäudes machen würde.

Anwendungsunterstützung und zusätzliche Verbesserungen

Funktionen wie Topologie und 3D sind ohne Unterstützung in den Anwendungen, die PostGIS verwenden, von begrenztem Wert. An dieser Front sind GRASS und gvSIG die ersten, die Topologie einschließen, weitere werden voraussichtlich folgen. MapServer und QGIS hingegen unterstützen bereits Raster-Layer. Möglicherweise gibt es in der Kategorie Raster-Datenunterstützung mehr, die ihre Raster-Funktionalität von der früheren Unterstützung des PostGIS Raster-Plug-Ins übernehmen. Die Dokumentation ist nicht immer klar.

Für 3D-Daten scheint derzeit nur gvSIG zu unterstützen, die in der nächsten Version enthalten sein soll. Dies wird angeblich nur die 3D-Anzeige unterstützen. Einige der Open-Source-GIS-Blogs sind jedoch von den Möglichkeiten von 3D begeistert, einschließlich seines Potenzials zur Integration mit Virtual Reality oder Augmented Reality. Das scheint aber ein paar Schritte entfernt zu sein, ebenso wie die Möglichkeit, Topologie- und 3D-Daten zu kombinieren.

Die für PostGIS 2.0 vorgesehene Raster-, 3D- und Topologie-Unterstützung sind nicht die einzigen neuen Funktionen des Datenbanksystems. Die Blogs und Mailinglisten erwähnen immer wieder die Verbesserungen am TIGER Geocoder, der Daten aus den vom US Census Bureau gesammelten gemeinfreien Kartendaten importiert und brach, als TIGER 2010 sein Format änderte. Es gibt auch eine neue "Reverse Geocoder"-Funktion der einen Kartenpunkt nimmt und nahegelegene Adressdaten oder Straßenkreuzungen zurückgibt, und ein überarbeiteter GUI-Ladeprogramm für Shape-Dateien, das erstmals mehrere Dateien gleichzeitig laden kann. Schließlich gibt es zum ersten Mal experimentelle Builds für Windows. In früheren Versionen mussten Windows-Benutzer PostGIS von Grund auf neu kompilieren. Das Projekt enthält eine vollständige Liste der neuen, erweiterten und veralteten Funktionen in seiner Online-Dokumentation.

Möglicherweise werden noch weitere Verbesserungen folgen PostGIS hat Berichten zufolge noch nicht seinen endgültigen Feature-Freeze erklärt, und es gibt finanzierte Auftragnehmer, die an einigen wichtigen Bereichen arbeiten, einschließlich 3D. Die endgültige Veröffentlichung wird offiziell im (nördlichen) "frühen Frühling" erwartet, der zu diesem Zeitpunkt natürlich erst wenige Tage alt ist. In der Zwischenzeit können sich die entsprechend Wagemutigen Testpakete von der PostGIS-Site holen. Bei diesen vielen substanziellen Neuerungen kann sich ein frühzeitiger Blick lohnen.

Unterstützung von CentOS

Es wird keinen Mangel an CentOS-Benutzern geben, die die Verbesserungen und die zusätzliche Hardwareunterstützung in den RHEL-Versionen 5.6 und 6.0 in die Hände bekommen möchten. Aber das eigentliche Problem ist nicht die verzögerte Befriedigung, sondern dass es seit dem 6. Januar keine Sicherheitsupdates für CentOS 5 und seit dem 14. Dezember 2010 nur noch eines gab. Während dieser Zeit hat RHEL 5, auf dem CentOS 5 basiert, Updates für dbus, exim, firefox (zweimal), gcc, hplip, java-openjdk, kernel (dreimal), krb5, libtiff, libuser, mailman, openldap, pango, php, postgresql, python, samba, subversion (zweimal), tomcat5, vsftpd , und Wireshark (zweimal). Da diese Updates auf der 5.6-Version basieren, kann CentOS sie nicht ohne weiteres an seine Benutzer weitergeben, bis auch diese eine 5.6-Basis haben. Da diese Basis nur langsam herangekommen ist, wurden all diese Sicherheitsupdates blockiert.

Einige dieser Schwachstellen sind schwerwiegender als andere, aber es ist nicht zu bestreiten, dass jedes CentOS 5-System da draußen derzeit mit einer Reihe bekannter Lücken läuft. Das ist nicht die Art von Solidität und Unterstützung, auf die CentOS-Benutzer gehofft haben. Viele dieser Benutzer werden sich inzwischen fragen, ob CentOS die richtige Distribution ist, auf der sie ihre Systeme aufbauen können.

Die CentOS-Mailingliste wurde mit Benutzern gefüllt, die fragten, wann Updates fließen würden und warum die Dinge so lange stecken geblieben sind. Einige sagen, dass es zu viele RHEL-Repackaging-Projekte gibt und dass CentOS sich mit einer Distribution wie Scientific Linux zusammenschließen sollte. Andere machen die 6.0-Version dafür verantwortlich, dass sie das Projekt von seinen 5.x-basierten Benutzern ablenkt – was dazu führt, dass Sicherheitsupdates für installierte Systeme zugunsten einer glänzenden neuen Distribution, die noch niemand läuft, schmachten. Wieder andere beklagen, dass das Projekt abgeschottet, verschwiegen und gegenüber neuen Mitwirkenden feindselig ist. All diese Behauptungen können wahr sein oder auch nicht, aber sie sind nicht Gegenstand dieses Artikels: Es gibt noch einen weiteren Aspekt des Problems, der eindeutig und klar ist.

Viele Menschen profitieren von der Arbeit des CentOS-Projekts, aber ganz oben auf der Liste müssen verwaltete Hosting-Provider stehen. Diese Unternehmen erhalten kostenlos eine solide Plattform, die sie auf Tausenden von Servern installieren und an ihre Kunden verkaufen können. Eine Site namens tophosts.com führt eine Liste der Top 25 Hosting-Unternehmen. Ein Blick auf diese Liste führt zu einigen interessanten Schlussfolgerungen. Von diesen 25 Unternehmen:

    Einer ist ein reiner Windows-Anbieter.

(Abgesehen davon ist es erstaunlich, wie schwer es vielen dieser Unternehmen ist, herauszufinden, was sie zu verkaufen anbieten. Die Websites von Hosting-Anbietern scheinen alle von derselben Person entworfen zu werden, sie sind ein verwinkeltes Labyrinth kleiner JavaScript-Funktionen , alle gleich.)

Auf dieser Liste sind die größten existierenden Hosting-Anbieter vertreten – wobei die Liste jedoch auf die USA ausgerichtet ist. Zusammen machen sie viele Hunderttausende von Systemen aus, von denen ein erheblicher Prozentsatz mit CentOS ausgeführt wird. Das ist viel Geschäft – viel Umsatz – das von CentOS-basierten Systemen generiert wird.

Ein Ausfall von CentOS – oder gar eine deutliche Rufschädigung – würde den Wert der von diesen Anbietern angebotenen Dienste mindern. Es gibt auch andere kostenlose Linux-Distributionen, von denen einige durchaus für stabile Bereitstellungssituationen geeignet sind, aber viele Kunden wünschen sich eine Distribution, die mit RHEL kompatibel ist. Diese Anbieter haben also einen erheblichen Anteil daran, den wahrgenommenen Wert von CentOS hoch zu halten. Vielleicht ist es an der Zeit, dass einige von ihnen Ressourcen einsetzen, um diesen Wert zu unterstützen.

Diese Mittel könnten durchaus auch Geldspenden für das Projekt sein. Aber viel besser wäre es für diese Unternehmen, jemanden einzustellen, der direkt mit CentOS arbeitet und es besser macht. Im Gegenzug würden sie alle Vorteile einer Open-Source-Beteiligung ernten: Sie hätten eine bessere Verbreitung für ihre Kunden, sie hätten mehr Einfluss auf die Ausrichtung des Projekts, ihre Teilnahme würde ihren Ruf verbessern und, Vor allem würden sie ihr internes Know-how verbessern, das dann zur Unterstützung ihrer Kunden genutzt werden könnte. Alle Motivationen, die Entwicklung freier Software in anderen Teilen der Wirtschaft zu unterstützen, gelten ebenso stark für Hosting-Provider.

Ein Blick auf die CentOS Sponsors Page zeigt, dass einige Hosting-Unternehmen – darunter eine Handvoll der Großen aus der oben beschriebenen Liste – das Projekt unterstützen. In vielen Fällen scheint die Unterstützung in Form eines gespendeten Servers zu erfolgen. CentOS benötigt sicherlich Server und Bandbreite, aber diese allein werden die Verteilung nicht stark halten. Selbst der stärkste Beitragende bekommt von Linux ein Schnäppchen - niemand gibt so viel ein, wie er herausbekommt. Aber man vermutet, dass die Hosting-Branche ein besseres Angebot macht als viele andere. Jetzt wäre ein guter Zeitpunkt für die Top-Begünstigten des CentOS-Projekts, die Ärmel hochzukrempeln und ernsthaft Zeit zu investieren, um es besser zu machen.


1 Antwort 1

Ihr Code in Ihrer Frage tut nichts wie die Berechnung des Abstands zwischen zwei Punkten. Es wäre eine gute Idee, ein wenig darüber zu recherchieren, wie man den Abstand zwischen zwei Punkten berechnet - hier müssen Sie beginnen. Sie sollten meine Antwort an Ihr Szenario anpassen können, aber es wäre eine gute Idee, die Mathematik zu verstehen, wenn Sie mit Koordinaten arbeiten.

Es gibt viele Informationen zu Stack Overflow zur Berechnung des Abstands zwischen zwei Punkten, sogar speziell zu PostgreSQL. Hier ist ein Beispiel, das aus einem anderen Stack Overflow-Artikel übernommen wurde (PostgreSQL berechnet den Abstand zwischen zwei Punkten ohne PostGIS):

Ich habe hartcodierte Werte von 10 für den Breitengrad des Ursprungspunkts und 15 für den Längengrad. Diese müssen durch die Breite / Länge des Punktes ersetzt werden, mit dem Sie vergleichen möchten.

Dadurch werden alle Zeilen in Ihrer Zieltabelle zurückgegeben, einschließlich einer neuen Spalte, die die Entfernung (in Meilen) der Zeile von Ihrem Ausgangspunkt darstellt. Es wird auch nach dieser Entfernung geordnet, am nächsten zum am weitesten entfernt.


Wir haben zumindest gefunden 10 Unten aufgeführte Websites bei der Suche mit Shapefile-Python importieren auf Suchmaschine

Shapefiles in Python: ein super einfaches Tutorial Chris Havlin

Chrishavlin.com DA: 15 PA: 32 MOZ-Rang: 47

Nach dem ersten Kommentarblock- und Bibliotheksimport liest der Code die Shapefile Verwenden der String-Variablen, die die Position der Shapefile Verzeichnis (data_dir) und den Namen des Shapefile ohne Erweiterung (shp_file_base): sf = shapefile.Reader (dat_dir+shp_file_base)

Verwenden von GeoPandas zum Anzeigen von Shapefiles in Jupyter Notebooks

  • Anzeige Shapefiles im Jupyter-Notizbuch
  • Öffnen Sie ein Jupyter-Notizbuch und importieren geopandas und lesen a Shapefile
  • importieren geopandas als gpd gdf = gpd.read_file ( '../RPA_hexagons.shp' ) print (gdf) Die print-Anweisung gibt die Attributtabelle zurück
  • Drei Codezeilen zum Abrufen der Attributtabelle und nur eine weitere zum Anzeigen der Daten.

¿Cómo puedo importar shapefile und python

Sisteme-ig.com DA: 14 PA: 50 MOZ-Rang: 66

  • ¿Cómo puedo importar un Shapefile de Python? von PyQt4.QtCore importieren QSettings, QTranslator, qVersion, QCoreApplication von PyQt4.QtGui importieren QAction, QIcon, QFileDialog # Qt-Ressourcen aus der Datei resources.py initialisieren importieren Ressourcen_rc # Importieren der Code für den Dialog von Importieren_tool_dialog importieren ImporttoolDialog von functools

Einlesen von Shapefiles von einer URL in GeoPandas – Andrew

von urllib2 importieren urlopen aus zipfile importieren ZipFile von StringIO importieren StringIO Shapefile-Import importieren Geopandas als gpd von shapely.geometry Formimport importieren shape osr importieren Pandas als pd importieren Anfragen importieren matplotlib.pyplot as plt %matplotlib inline Der erste Schritt besteht darin, PyShp zu verwenden, um unsere Shapefile.

Plotten von Shapefiles mit Cartopy und Folium

  • Zuerst werden wir cartopy's verwenden Formleser um Zustände herunterzuladen (und zu cachen) Shapefile mit 50 Meter Auflösung vom NaturalEarth
  • In: von cartopy.io Shapereader importieren kw = dict(resolution='50m', category='cultural', name='admin_1_states_provinces') States_shp = shapereader.natural_earth(**kw) shp = shapereader.Reader(states_shp)

Tutorial: Erstellen eines Pandas DataFrame aus einem Shapefile

Die schnellste und einfachste Möglichkeit, einen DataFrame aus einem Shapefile zu erstellen, ist die Verwendung von GeoPandas, eine Python-Bibliothek zum Arbeiten mit Geodaten. GeoPandas erbt die Standardmethoden von Pandas zum Indizieren und Auswählen von Daten und fügt geografische Operationen als räumliche Verknüpfungen und Zusammenführungen hinzu.

GeoDjango Laden eines Shapefiles in PostGIS

  • Automatisieren Sie geografische Modelle und importieren Datenverarbeitung unter Verwendung des Verwaltungsbefehls ogrinspect
  • Der Befehl ogrinspect untersucht eine GDAL-unterstützte Vektordatenquelle (z. B. a Shapefile) und erzeugt a Modell Definition und LayerMapping-Wörterbuch automatisch
  • Wir definieren die Modell Klassenname als AdministrativeLevel2Boundaries in model.py.

Einlesen von Shapefiles in Pandas Dataframes · Adam Erispaha

  • Lektüre Shapefiles in Pandas Dataframes Shapefile importieren #das pyshp-Modul importieren pandas als pd #read-Datei, analysieren Sie die Datensätze und Formen Shapefile_path = r 'Pfad/zu/Shapefile/' sf = Shapefile
  • Messung der Medienberichterstattungsdynamik mit MongoDB und Python 22. Juli 2017

Python + GIS – ShapeFile-Massenimport PostgreSQL (PostGIS

  • Python + GIS – Shape-Datei Schüttgut importieren PostgreSQL (PostGIS) Zeit: 2020-5-31
  • PostgreSQL + PostGIS ist eine gemeinsame Lösung zum Speichern, Verarbeiten und Analysieren von Geodaten
  • Ich glaube, dass das erste, was man bei der Installation von PostGIS wie bei mir ist, zu lernen, wie man es macht importieren die ESRI ShapeDatei in die Datenbank
  • Die übliche Methode ist, importieren Daten durch die

GIS in Python: Einführung in räumliche Daten im Vektorformat

  • Wenn du importieren die SJER_plot_centroids Shapefile Schicht in Python die Funktion gpd.read_file() speichert automatisch Informationen über die Daten als Attribute
  • Sie interessieren sich besonders für die Geodaten, die Format, CRS, Ausdehnung und andere Komponenten der Vektordaten beschreiben, sowie die Attribute, die Eigenschaften beschreiben describe

Gelöst: Hinzufügen von Shapefiles zu einem Projekt in PRO mit Python

  • Ich habe ein Python Skript, das ich verwende, um kml-Daten zu erhalten und diese dann in eine Geodatabase umzuwandeln, die Informationen zu extrahieren und 3 . zu erstellen Shapefiles die ich dann als Weblayer veröffentlichen muss
  • Ich habe das Skript, damit es die erstellte Geodatabase nicht automatisch hinzufügt oder Shapefile

Erstellen von Webkarten mit Python, Folium und Shapefiles

Shallowsky.com DA: 14 PA: 41 MOZ-Rang: 66

  • Erstellen von Webkarten mit Python, Folium und Shapefiles
  • Ein Freund hat mir kürzlich Folium vorgestellt, eine schnelle und einfache Möglichkeit, mit der Sie Webkarten erstellen können Python
  • Mit dem Folium Quickstart können Sie schnell loslegen
  • In nur zwei Zeilen von Python (plus die importieren line), können Sie eine HTML-Datei schreiben, die Sie in jeden Browser laden können, um eine rutschige Karte anzuzeigen, oder Sie

Importieren von SHP (Esri Shapefile)—ArcGIS CityEngine-Ressourcen

Doc.arcgis.com DA: 14 PA: 50 MOZ-Rang: 76

  • SHP importieren (Esri Shapefile) Shapefile ist ein Legacy-Format von Esri, um georeferenzierte GIS-Features (Punkte, Linien, Polygone und begrenzte Multipatches) zu beschreiben.
  • Es bietet eingeschränkte Unterstützung für GIS-Attribute und sollte von Esri FileGDB . abgelöst werden
  • Importieren Einstellungen Die Shapefile-Import hat die folgenden Optionen: FilePress Durchsuchen, um einen Dialog zur Auswahl einer .shp Datei zu importieren.Nach dem Öffnen

Arbeiten mit Shapefiles — Basemap Tutorial 0.1 Dokumentation

  • Zuerst die Shapefile gelesen, und dann können die Punkte mit Scatter, Plot oder der Matplotlib-Funktion gezeichnet werden, die den Anforderungen besser entspricht
  • Von mpl_toolkits.basemap importieren Basiskarte importieren matplotlib.pyplot as plt map = Basemap(llcrnrlon=-0.5,llcrnrlat=39.8,urcrnrlon=4.,urcrnrlat=43.,resolution='i',projection='tmerc', lat_0 = 39.5, lon_0 = 1

Lesen und Schreiben von Dateien — Dokumentation zu GeoPandas 0.9.0

Geopandas.org DA: 13 PA: 24 MOZ-Rang: 51

importieren fiona help(fiona.open) Unter anderem kann man den Treiber explizit setzen (Formdatei, GeoJSON) mit dem Schlüsselwort driver oder wählen Sie einen einzelnen Layer aus einer mehrschichtigen Datei mit dem Layer-Schlüsselwort: country_gdf = geopandas.read_file("package.gpkg", layer='countries')

Geographische Daten in Python zuordnen. Eine große Hilfe, wenn

  • Das Shapefile format ist ein beliebtes Vektordatenformat des geografischen Informationssystems, das von Esri
  • Um pyshp zu installieren, führen Sie die folgende Anweisung in Ihrem Terminal aus: pip install pyshp 3
  • Importieren und initialisieren main Python Bibliotheken importieren numpy als np importieren Pandas als pd Shapefile importieren wie shp-Import matplotlib.pyplot als plt importieren Seegeboren als

CSV in Shapefile mit pyshp Geospatiality

  • In diesem Beitrag betrachte ich das Extrahieren von Punktdaten aus einer CSV-Datei und das Erstellen einer Shapefile mit der pyshp-Bibliothek
  • Die Daten bestehen aus dem Standort von Bäumen mit verschiedenen Attributen, die vom Fingal County Council in Irland erstellt wurden
  • Die Daten können als CSV-Datei von dublinked.ie heruntergeladen werden.
  • Pyshp ist ein reines Python Bibliothek zur Bereitstellung von Lese- und Schreibunterstützung für den ESRI Shapefile (.shp

So importieren Sie Shapefile-Polygone in Power BI und

  • Wie von Jon erwähnt, können Sie a nicht eingeben Shapefile in ArcGIS Maps for PowerBI
  • Wenn dein Shapefile über ein Location-Attribut verfügt, können Sie jedoch die .dbf-Komponente des Shapefile in eine CSV-Datei, die in ArcGIS Maps for PowerBI importiert und mit diesem Location-Attribut angezeigt werden kann.

So laden Sie Shapefiles mit Python, Geopandas in PostGIS hoch

Hatarilabs.com DA: 18 PA: 50 MOZ Rank: 86

How to upload Shapefiles to PostGIS with Python, Geopandas and SQLAlchemy - Tutorial February 25, 2021 / Saul Montoya In our research for new geospatial tools in Python and better ways to deal with geospatial data we found that complex or full featured processes are already included in the common spatial libraries as Geopandas.

Introduction to Geopandas — Intro to Python GIS CSC

  • Typically reading the data into Python is the first step of the analysis pipeline
  • In GIS, there exists various dataformats such as Shapefile , GeoJSON , KML, and GPKG that are probably the most common vector data formats
  • Geopandas is capable of reading data from all of these formats (plus many more)
  • Reading spatial data can be done easily

Importing Table Data Google Earth Engine Google Developers

  • To upload a Shapefile from the Code Editor, click the button, then select Gestalten files under the Table Upload section
  • An upload dialog similar to Figure 1 will be presented

How to read a shapefile in Python

Asktowolrd.com DA: 14 PA: 50 MOZ Rank: 85

  • Geographic Information Systems: My question is an extension of Vertical lines in a polygon shapefile
  • Kindly refer to that question first
  • What you will see is a method of generating vertical lines with respect to the bounding box, at user-defined spacing
  • I understand that OGR, Fiona, Shapely etc
  • Can be used to do the next step of clipping,


学习笔记之Nearest-Neighbour Searching with PostGIS

转自:http://www.cnblogs.com/graphics/archive/2009/11/25/1583682.html DirectX 总结 DDS DirectXDraw Surfac .

放着好好的成熟的AJS 3.19不学,为什么要去碰乳臭未干的AJS 4.2? 4.2全线基础学习请点击[直达] 4.3及更高版本的补充学习请关注我的博客. ArcGIS API for JavaScr .

gPRC学习笔记 gPRC基础教程. gPRC官方文档. protobuf 3.0的简易教程. 什么是RPC RPC(remote procedure call) -- 远程过程调用(相对于本地调用的 .

一. 算法概述 本文提出的SSD算法是一种直接预测目标类别和bounding box的多目标检测算法.与faster rcnn相比,该算法没有生成 proposal 的过程,这就极大提高了检测速度.针 .

k-nearest neighbors algorithm - Wikipedia https://en.wikipedia.org/wiki/K-nearest_neighbors_algorith .

本节介绍基于Keras的使用预训练模型方法 想要将深度学习应用于小型图像数据集,一种常用且非常高效的方法是使用预训练网络.预训练网络(pretrained network)是一个保存好的网络,之前已在 .

本节介绍基于Keras的CNN 卷积神经网络接收形状为 (image_height, image_width, image_channels)的输入张量(不包括批量维度),宽度和高度两个维度的尺寸通常 .

机器学习实战(Machine Learning in Action)学习笔记————02.k-邻近算法(KNN) 关键字:邻近算法(kNN: k Nearest Neighbors).python.源 .

接着上篇继续扯,其实语法糖也不是什么坏事,第一个就是吃不吃随你,第二个就是最好要知道这些糖在底层都做了些什么,不过有一点 叫眼见为实,这样才能安心的使用,一口气上五楼,不费劲. 一:字符串嵌入值 我想 .

翻转链表作为,链表的常用操作,也是面试常遇到的. 分析非递归分析: 非递归用的小技巧比较多,很容易出错. 递归分析比较简单,在代码里面 代码: #include<stdio.h> #inc .

学习基础,JQuery 原生JS有一定基础,有自己一定技术认知(ps:原型链依然迷糊中.闭包6不起来!哎!) 当然最好有语言基础,C#,java,PHP等等.. 最初学习这个东西的原因很简单,在园子里 .

[液晶模块系列基础视频]2.虚拟U盘 ============================== 技术论坛:http://www.eeschool.org 博客地址:http://xiaomagee .

相信很多人用过win10后再换回win7或者xp等系统都会有些不习惯,所以在这里安利一款博主自己开发的小软件:环境变量助手. 继承于Win10风格的环境变量,操作简单方便,使用时需要账户权限. 注意: .

Ntop Ntop 是一款类似于sniffer的流量监控工具,它显示出的流量信息比mrtg更加详细. 1 .安装一些依赖软件 [[email protected] bandwidthd]# yum ins .

display:block: 块元素会独自占据一整行,或者多行,可以任意设置其大小尺寸,是用于搭建网页布局的必须部分,使网页结构更加紧凑合理. 块级元素width.height.padding.mar .

[maven_nexus3私服搭建] # 00.安装环境说明# (1)Windows7 64位# (2)JDK1.8 64位# (3)Sonatype Nexus Repository OSS 3.1 .