Skip to content

Instantly share code, notes, and snippets.

View iamgeoknight's full-sized avatar

Spatial Dev Guru iamgeoknight

View GitHub Profile
<script src="https://cdnjs.cloudflare.com/ajax/libs/jsts/2.6.1/jsts.js"></script>
/*
Create a Draw interaction for LineString and Polygon
*/
class Draw {
//Constructor accepts geometry type, map object and vector layer
constructor(type, map, vector_layer) {
this.map = map;
this.vector_layer = vector_layer;
this.draw = new ol.interaction.Draw({
type: type,
/*
Create Vector Layer
*/
class VectorLayer{
//Constructor accepts title of vector layer and map object
constructor(title, map) {
this.layer = new ol.layer.Vector({
title: title,
source: new ol.source.Vector({
projection:map.getView().projection
/*
Create a Draw interaction for LineString and Polygon
*/
class Draw {
//Constructor accepts geometry type, map object and vector layer
constructor(type, map, vector_layer) {
this.map = map;
this.vector_layer = vector_layer;
this.draw = new ol.interaction.Draw({
type: type,
/*
Create overlay
*/
class Overlay {
//Contrctor accepts map object, overlay html element, overlay offset, overlay positioning and overlay class
constructor(map, element = document.getElementById("popup"), offset = [0, -15], positioning = 'bottom-center', className = 'ol-tooltip-measure ol-tooltip .ol-tooltip-static') {
this.map = map;
this.overlay = new ol.Overlay({
element: element,
offset: offset,
/*
Create and Render map on div with zoom and center
*/
class OLMap {
//Constructor accepts html div id, zoom level and center coordinaes
constructor(map_div, zoom, center) {
this.map = new ol.Map({
target: map_div,
layers: [
new ol.layer.Tile({
@iamgeoknight
iamgeoknight / jsts_wkt.js
Created January 27, 2021 06:25
JSTS reading WKT geometry
var reader = new jsts.io.WKTReader()
var a = reader.read('POINT (-20 0)')
var b = reader.read('POINT (20 0)')
a = a.buffer(40)
b = b.buffer(40)
@iamgeoknight
iamgeoknight / jsts.js
Last active January 27, 2021 05:59
JSTS
var parser = new jsts.io.OL3Parser();
var jstsGeom = parser.read('OpenLayers Geometry');
var buffered = jstsGeom.buffer(40);
var ol_geom = parser.write(buffered)
<!doctype html>
<html lang="en">
<head>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/openlayers/openlayers.github.io@master/en/v6.5.0/css/ol.css" type="text/css">
<style>
.map {
height: 400px;
width: 400px;
}
</style>
<body>
<script type="text/javascript">
var map = new ol.Map({
target: 'map',
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
})
],
view: new ol.View({