jsts openlayers
by Harold
HTML
<link rel="stylesheet" href="https://openlayers.org/en/v3.18.2/css/ol.css">
<script src="https://cdn.rawgit.com/bjornharrtell/jsts/gh-pages/1.2.0/jsts.min.js"></script>
<script src="https://openlayers.org/en/v3.18.2/build/ol.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/proj4js/2.3.3/proj4.js"></script>
<script src="https://api.tiles.mapbox.com/mapbox.js/plugins/turf/v2.0.0/turf.min.js"></script>
<div id="map" class="map"></div>
JavaScript
var source = new ol.source.Vector();
//var parser = new jsts.io.OL3Parser();
window.Proj4js = {
Proj: function (code) {
return proj4(Proj4js.defs[code]);
},
defs: proj4.defs,
transform: proj4
};
Proj4js.defs["EPSG:27700"] = "+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400000 +y_0=-100000 +ellps=airy +datum=OSGB36 +units=m +no_defs ";
console.log(Proj4js.defs["EPSG:27700"]);
vertices = [[429384.375602, 260897.785691], [456508.911714, 300256.783586], [496508.911714, 310256.783586]]
var feature = new ol.Feature({
geometry: new ol.geom.Polygon([vertices])
});
console.log(1);
//feature.getGeometry().transform('EPSG:27700', 'EPSG:3857');
console.log(2);
var pointFeature = new ol.Feature({
geometry: new ol.geom.Point(ol.proj.fromLonLat([-0.118092 ,51.509865 ]))
});
// convert the OpenLayers geometry to a JSTS geometry
// var jstsGeom = parser.read(pointFeature.getGeometry());
// create a buffer around a point
// var buffered = jstsGeom.buffer(100000);
// convert back from JSTS and replace the geometry on the feature
// pointFeature.setGeometry(parser.write(buffered));
//source.addFeature(pointFeature);
// source.addFeature(feature);
//var vectorLayer = new ol.layer.Vector({
// source: source
//});
var rasterLayer = new ol.layer.Tile({
source: new ol.source.OSM()
});
var map = new ol.Map({
// layers: [rasterLayer, vectorLayer],
layers: [rasterLayer],
target: document.getElementById('map'),
view: new ol.View({
center: ol.proj.fromLonLat([-0.118092 ,51.509865]),
zoom: 8
})
});
var scaleLineControl = new ol.control.ScaleLine({minWidth:200});
map.addControl(scaleLineControl);
map.on('singleclick', function (e) {
var coord = e.coordinate;
var pixel = e.pixel;
console.log(coord);
map.forEachFeatureAtPixel(pixel, function (feature, layer) {
console.log(feature);
var p= feature.getGeometry().getCoordinates();
var...