Ich habe eine Datenbank, die eine große Anzahl von Entitäten verfolgt. Jedes Unternehmen verfügt über ein "Versorgungsgebiet" oder "Einzugsgebiet" - einen Radius in Meilen von einer bestimmten Postleitzahl im Vereinigten Königreich, z
Leyton office 4.3m E11 4LL
Stratford office 5.2m E15 6ZZ
East Ham office 2.1m E4 8QQ
Ich möchte daraus eine Karte der geografischen Intensität machen - eine Karte einer Region, die schattiert oder farbig ist, um die Anzahl der Objekte anzuzeigen, die jeden Punkt auf der Karte abdecken. Eine Segmentierung in kleine Regionen ist ebenfalls akzeptabel.
Dies ist wahrscheinlich ein einmaliges Projekt, daher ist es unwahrscheinlich, dass meine Organisation Geld für den Kauf von Software bereitstellt. Das heißt, null oder zumindest kostengünstige Lösungen sind vorzuziehen.
free-software
heat-map
Jimmy Breck-McKye
quelle
quelle
Antworten:
Vielleicht helfen Ihnen diese Links:
Wie erstelle ich effektive Heatmaps?
mit QGIS: http://alexsciuto.com/blog/2010/11/how-to-make-your-own-heat-map-pt-1-gathering-the-materials/
Python-Skript: http://www.sethoscope.net/heatmap/
http://sk53-osm.blogspot.com/2011/01/heat-maps-from-osm-pois.html
Entschuldigung für eine nicht ausgearbeitete Antwort ..
quelle
Ich gehe davon aus, dass Sie eine Dichtekarte darüber wünschen, wie gut jeder Bereich abgedeckt ist, dh wie viele Büros sich in der Nähe befinden, einschließlich des "Radius" dieser Büros.
Sie können dies alles in PostgreSQL oder zumindest in PostGIS , einer kostenlosen Erweiterung, tun . Ich schlage vor, dass Sie sich darum kümmern und sich über einige der Dokumente informieren.
Dann müssen Sie wahrscheinlich Ihre Postleitzahlen geocodieren. Eine einfache Lösung besteht darin, den Datensatz mit den Ordnance Survey Code Points ( https://www.ordnancesurvey.co.uk/opendatadownload/products.html ) herunterzuladen (kostenlos) und der Datenbank mithilfe von PostGIS eine Postleitzahl zuzuweisen Funktionen - Sie müssen ST_GeomFromText () verwenden und sich wahrscheinlich über bekannte Textkoordinaten informieren.
Sie sollten also eine räumliche Tabelle aller Punkte haben.
Anschließend können Sie sie mit der Funktion ST_Buffer in einer neuen räumlichen Tabelle puffern (einen Radius um jeden Punkt erstellen).
In diesem Fall müssen Sie in PostGIS ein nicht überlappendes Polygon-Overlay erstellen. Weitere Informationen hierzu finden Sie unter Trennen von Polygonen anhand der Schnittmenge mit PostGIS . Dadurch sollte das Dataset wie oben beschrieben in kleine Regionen unterteilt werden.
Anschließend müssen Sie abfragen, wie viele Puffer sich mit Ihren neuen segmentierten Regionen überschneiden. Dies ist eine recht komplizierte SQL-Abfrage, die jedoch möglich sein sollte.
Dies ist eine ziemlich komplizierte Prozedur, wie Sie selbst für jemanden sehen können, der Erfahrung mit GIS hat, und es gibt viele Fallstricke, wie z Angebot.
Eine viel einfachere Möglichkeit wäre es wahrscheinlich, ein regelmäßig verteiltes Punktegitter zu nehmen und die durchschnittliche Entfernung zu berechnen, dh die fünf nächstgelegenen Büros, und die Farbcodes für die einzelnen Rasterquadrate nach durchschnittlicher Entfernung zu berechnen. Dies würde jedoch nicht den "Radius" der Büros berücksichtigen - nicht sicher, was dies darstellt - Einfluss?
quelle
Sie können dies einfach online mit Mapsdata.de tun
Die App liest Daten aus .xls oder .csv und ist vorprogrammiert, um Geodaten wie die britischen Postleitzahlen zu konvertieren. Sie können mehrere Grafiken erstellen: eine Blasenkarte, bei der der Einzugsbereich als Wert verwendet wird, Stecknadeln mit Deckkraft für die Anzeige der Dichte oder eine Heatmap. In allen Optionen können Sie die Deckkraft, Farbe usw. ändern und dann entweder als PNG- oder als HTML-Iframe zur Verwendung auf anderen Webseiten exportieren.
Müssen Sie die Größe der Blasen georeferenzieren? Dies kann auch mit einigen Optimierungen erreicht werden.
quelle