Skip to content

Instantly share code, notes, and snippets.

View mdiener21's full-sized avatar

Michael Diener mdiener21

View GitHub Profile
@mdiener21
mdiener21 / select_polys_with_points_inside.sql
Last active September 11, 2019 15:07
Select all polygons that contain 1 or more points
SELECT DISTINCT s.id, s.tags
FROM myspace_polys as s
JOIN mypoi_points as as p
ON ST_Contains(s.geom, p.geom);
@mdiener21
mdiener21 / run_postgis_docker.sh
Last active January 2, 2019 07:57
Use docker to create a postgresql and postgis db https://hub.docker.com/r/kartoza/postgis/
$ docker run --name=postgis -d -e POSTGRES_USER=user001 -e POSTGRES_PASS=123456789 -e POSTGRES_DBNAME=gis -p 5432:5432 kartoza/postgis:9.6-2.4
@mdiener21
mdiener21 / install-gdal.sh
Last active December 13, 2018 10:22
Install GDAL Ubuntu 18
sudo apt install python3-gdal gdal-bin
pip install --global-option=build_ext --global-option="-I/usr/include/gdal" GDAL==`gdal-config --version`
@mdiener21
mdiener21 / round_nearest_quarter_hour
Created December 3, 2018 11:14
Formulat for Libre Office Sheets round a duration value to the nearest quarter hour
# sheets formula to round the value in cell F2 to the nearest quarter hour
=HOUR(F2) + (MROUND(MINUTE(F2),15)/60)
if 1:18:33 is the duration the result is 1.25.
@mdiener21
mdiener21 / test-data.geojson
Created November 29, 2018 14:51
test project data
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@mdiener21
mdiener21 / select_polys_inside.sql
Created November 9, 2018 20:21
Postgis select polygons that are inside and not touching
SELECT c.cadaster_id, r.name
, CASE
WHEN ST_CoveredBy(c.geom, r.geom)
THEN c.geom
ELSE
ST_Multi(
ST_Intersection(c.geom,r.geom)
) END AS geom
FROM cadaster AS c
INNER JOIN roads_ply AS r
@mdiener21
mdiener21 / buffer_with_dissolve.sql
Created October 30, 2018 09:43
PostGIS buffer and dissolve polygons based on IDs.
-- create a 0.5m buffer with square edges using mitre join
-- used for buffering building spaces to create a floor space
-- only taking 5 ids
SELECT fk_building_id, fk_building_floor_id,
st_multi(ST_Union(St_Buffer(b.geom,0.5,'endcap=square join=mitre mitre_limit=2')))
AS geom FROM django.buildings_buildingfloorspace AS b
WHERE floor_num = 1 AND fk_building_id IN (2,3,6,7,8)
GROUP BY fk_building_id, fk_building_floor_id
@mdiener21
mdiener21 / geoserver-cors.xml
Created October 22, 2018 06:47
Geoserver Cors settings for Tomcat
<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
<init-param>
<param-name>cors.allowed.origins</param-name>
<param-value>*</param-value>
</init-param>
<init-param>
<param-name>cors.allowed.methods</param-name>
<param-value>GET,POST,HEAD,OPTIONS,PUT</param-value>
@mdiener21
mdiener21 / django-centroid.py
Last active October 4, 2018 19:27
Creating a Centroid in Django GeoDjango returning as GeoJson with object attributes
import json
from geojson import Feature
from django.contrib.gis.db.models.functions import Centroid, AsGeoJSON
from buildings.models import Space
from rest_framework.decorators import api_view
from rest_framework.response import Response
@api_view(['GET'])
def get_room_center(request, unique_id):
@mdiener21
mdiener21 / openlayers_stacked_style.js
Last active October 3, 2018 14:41
Openlayers stacked font awesome styles for points
// using font awesome 5 free version
var faFlagSolidStyle = new ol.style.Style({
text: new ol.style.Text({
text: '\uf024', // fas flag solid
scale: 1,
font: 'normal 18px FontAwesome',
offsety: -30,
offsetx: -10,
fill: new ol.style.Fill({color: 'black'}),
})