Google Maps Intersection Detector

by HoffZ

HTML

<script src="https://cdn.rawgit.com/bjornharrtell/jsts/gh-pages/1.4.0/jsts.min.js"></script>
<script src="https://maps.google.com/maps/api/js?sensor=false&amp;libraries=drawing"></script>
<div id="map">

</div>

CSS

#map {
  width: 500px;
  height: 400px;
}

JavaScript

Kart.Wms.KartverketCache = function (name, layer) {
  this.layer = layer;
  this.name = name;
  this.alt = name;

  this.tileSize = new google.maps.Size(256, 256);
  this.maxZoom = 19;
  this.getTile = function (coord, zoom, ownerDocument) {
    var div = ownerDocument.createElement('DIV');
    div.style.width = this.tileSize.width + 'px';
    div.style.height = this.tileSize.height + 'px';
    div.style.backgroundImage = "url(https://gis3.nve.no/map/services/Nettanlegg1/MapServer/WmsServer?format=image/png&layers=" +
        this.layer + "&zoom=" + zoom + "&x=" + coord.x + "&y="
        + coord.y + '&' + ")";
    return div;
  };
};

var tiledLayer = new google.maps.ImageMapType({
  getTileUrl: function(tileCoord, zoom) {
  	var baseUrl = "https://gis3.nve.no/map/services/Nettanlegg1/MapServer/WmsServer?";
    var params = 
      "layers=Distribusjonsnett,Regionalnett,Sentralnett" +
      //"&format=image/png&service=wmts&version=1.0.0" +
      "&request=GetTile&style=default&tilematrixset=EPSG:3857" +
      "&tilematrix=EPSG:3857:" + zoom + "&tilerow=" + tileCoord.y +
      "&tilecol=" + tileCoord.x;
      return baseUrl + params;
  },
  tileSize: new google.maps.Size(256, 256),
  name: "Kartverket",
  maxZoom: 20
});

var mapOptions = {
  zoom: 16,
  center: new google.maps.LatLng(62.1482, 6.0696),  
};

var map = new google.maps.Map(document.getElementById("map"), mapOptions);
google.maps.event.addListenerOnce(map, 'idle', function () {
      _kart.mapTypes.roadmap.name = 'Gate';
      _kart.mapTypes.hybrid.name = 'Satelitt';
      _kart.setOptions({'mapTypeControl': true});
    });

map.mapTypes.set('Energinett
//_kart.mapTypes.set('topo2', new Kart.Wms.KartverketCache("Eiendom", "topo2"));

//map.mapTypes.set('topo4g',tiledLayer);
//map.setMapTypeId('topo4g');

/*
var center = [60.438160, 5.472157];
var map = L.map('map').setView(center, 12);

L.tileLayer(
  'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
    maxZoom: 18
  }).addTo(map);

var...