Skip to content
Snippets Groups Projects
Commit 850e6a0c authored by Marco Martorana's avatar Marco Martorana
Browse files

Added heatMap for Delay representation (Messina use case)

parent 1a9c37c0
No related branches found
No related tags found
No related merge requests found
...@@ -149,6 +149,46 @@ ...@@ -149,6 +149,46 @@
"integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
"dev": true "dev": true
}, },
"ansi-styles": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
"requires": {
"color-convert": "^1.9.0"
}
},
"chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
"requires": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
},
"dependencies": {
"supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
"requires": {
"has-flag": "^3.0.0"
}
}
}
},
"color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"dev": true,
"requires": {
"color-name": "1.1.3"
}
},
"core-js": { "core-js": {
"version": "3.6.5", "version": "3.6.5",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz",
...@@ -175,6 +215,12 @@ ...@@ -175,6 +215,12 @@
"path-is-absolute": "^1.0.0" "path-is-absolute": "^1.0.0"
} }
}, },
"has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
"dev": true
},
"json-schema-traverse": { "json-schema-traverse": {
"version": "0.4.1", "version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
...@@ -187,6 +233,25 @@ ...@@ -187,6 +233,25 @@
"integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==",
"dev": true "dev": true
}, },
"postcss": {
"version": "7.0.32",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz",
"integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==",
"dev": true,
"requires": {
"chalk": "^2.4.2",
"source-map": "^0.6.1",
"supports-color": "^6.1.0"
},
"dependencies": {
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
}
}
},
"rimraf": { "rimraf": {
"version": "3.0.2", "version": "3.0.2",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
...@@ -256,6 +321,15 @@ ...@@ -256,6 +321,15 @@
"schema-utils": "^3.0.0" "schema-utils": "^3.0.0"
} }
}, },
"supports-color": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
"integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
"dev": true,
"requires": {
"has-flag": "^3.0.0"
}
},
"tslib": { "tslib": {
"version": "1.14.1", "version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
...@@ -3188,6 +3262,15 @@ ...@@ -3188,6 +3262,15 @@
"@types/leaflet": "*" "@types/leaflet": "*"
} }
}, },
"@types/leaflet.heat": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/@types/leaflet.heat/-/leaflet.heat-0.2.0.tgz",
"integrity": "sha512-j/vfitsOOR7AU63/mlshqr88a6uZUObkvc55b3XkR2p7q0FFr021NMNineVhn1uT8BYfEETFraQCo/IZZpV3QQ==",
"dev": true,
"requires": {
"@types/leaflet": "*"
}
},
"@types/marked": { "@types/marked": {
"version": "2.0.2", "version": "2.0.2",
"resolved": "https://registry.npmjs.org/@types/marked/-/marked-2.0.2.tgz", "resolved": "https://registry.npmjs.org/@types/marked/-/marked-2.0.2.tgz",
...@@ -12301,6 +12384,11 @@ ...@@ -12301,6 +12384,11 @@
"resolved": "https://registry.npmjs.org/leaflet.awesome-markers/-/leaflet.awesome-markers-2.0.5.tgz", "resolved": "https://registry.npmjs.org/leaflet.awesome-markers/-/leaflet.awesome-markers-2.0.5.tgz",
"integrity": "sha512-Ne/xDjkGyaujwNVVkv2tyXQUV0ZW7gZ0Mo0FuQY4jp2qWrvXi0hwDBvmZyF/8YOvybyMabTMM/mFWCTd1jZIQA==" "integrity": "sha512-Ne/xDjkGyaujwNVVkv2tyXQUV0ZW7gZ0Mo0FuQY4jp2qWrvXi0hwDBvmZyF/8YOvybyMabTMM/mFWCTd1jZIQA=="
}, },
"leaflet.heat": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/leaflet.heat/-/leaflet.heat-0.2.0.tgz",
"integrity": "sha1-EJ2M9Ybwre5B8Fr/Ax4np3/swik="
},
"less": { "less": {
"version": "3.12.2", "version": "3.12.2",
"resolved": "https://registry.npmjs.org/less/-/less-3.12.2.tgz", "resolved": "https://registry.npmjs.org/less/-/less-3.12.2.tgz",
...@@ -15927,9 +16015,9 @@ ...@@ -15927,9 +16015,9 @@
"dev": true "dev": true
}, },
"postcss": { "postcss": {
"version": "7.0.32", "version": "7.0.36",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz",
"integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==",
"dev": true, "dev": true,
"requires": { "requires": {
"chalk": "^2.4.2", "chalk": "^2.4.2",
......
import { ChangeDetectorRef, Component, OnInit } from '@angular/core'; import { ChangeDetectorRef, Component, OnInit } from '@angular/core';
import * as L from 'leaflet'; import * as L from 'leaflet';
import AMTram2020 from '../../../../assets/map/am_tram_2020.json'; import 'leaflet.heat/dist/leaflet-heat.js';
//import { addressPoints } from '../../../../assets/map/realworld.10000';
import geoJsonPoints from '../../../../assets/map/heatgeo.json';
@Component({ @Component({
selector: 'ngx-single-map', selector: 'ngx-single-map',
styleUrls: ['./matrix.component.scss'], styleUrls: ['./matrix.component.scss'],
template: ` template: `
<div class="row d-flex justify-content-between align-items-center"> <div style="height: 100vh;"
<nb-card class="col-12"> leaflet [leafletOptions]="options"
<nb-card-header>Matrix Traffic</nb-card-header> (leafletMapReady)="onMapReady($event)">
<nb-card-body>
<div leaflet #map
[leafletOptions]="options"
(leafletMapReady)="onMapReady($event)"
>
</div>
<div class="mt-1">
<p>Matrix component <b>Messina</b></p>
<p>Matrix X=day/Y=Hour Value=TrafficValue[0,10] => (change color)</p>
</div>
</nb-card-body>
</nb-card>
</div>` </div>`
}) })
export class MatrixComponent implements OnInit { export class MatrixComponent {
public map: L.Map;
icon = new L.Icon({
iconSize: [25, 41],
iconAnchor: [13, 41],
iconUrl: 'assets/img/markers/marker-icon.png',
iconRetinaUrl: 'assets/img/markers/marker-icon-2x.png',
shadowUrl: 'assets/img/markers/marker-shadow.png'
});
topLayer = "2020";
options = { options = {
layers: [ layers: [
L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { maxZoom: 18, attribution: '...' }), L.tileLayer("http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", {
maxZoom: 20,
attribution: ""
})
], ],
zoom: 9, zoom: 14,
center: L.latLng({ lat: 52.372664783594274, lng: 4.8950958251953125 }), //center: L.latLng(38.193813, 15.554015)
center: L.latLng(38.181529, 15.562588)
}; };
layer2020: L.GeoJSON; onMapReady(map) {
//let newAddressPoints = addressPoints.map(function (p) { return [p[0], p[1]]; });
constructor(private cdRef: ChangeDetectorRef) { } var heatOptions1: {
minOpacity: 0.05,
maxZoom: 20,
radius: 25,
blur: 15,
max: 1.0
};
ngOnInit(): void { var heatOptions = {
this.layer2020 = this.getLayer('2020', <any>AMTram2020); radius: 15,
max: 1.0,
blur: 15,
gradient: {
0.0: 'green',
0.5: 'yellow',
0.7: 'orange',
1.0: 'red'
},
minOpacity: 0.7
} }
onMapReady(map: L.Map) { let heatPoints = this.heatLayerConverter(geoJsonPoints);
this.map = map; //console.log("Ciao heat : " + this.heatLayerConverter(geoJsonPoints));
setTimeout(() => { //const heat = L.heatLayer(newAddressPoints2, this.options).addTo(map);
this.map.invalidateSize(); //var heat = L.heatLayer([
this.map.addLayer(this.layer2020); // [ 38.16524, 15.541335, 0.2], // lat, lng, intensity
this.map.fitBounds(this.layer2020.getBounds(), { // [ 38.16841, 15.54778, 101.0], ], heatOptions).addTo(map);
padding: [50, 50]
});
}, 50);
var heat = L.heatLayer(heatPoints, heatOptions).addTo(map);
} }
public getLayer(title, l): L.GeoJSON { private heatLayerConverter(geoJson) {
var result = [];
let layer = L.geoJSON(l, for (let r in geoJson['features']) {
{ let coord = geoJson['features'][r].geometry.coordinates;
onEachFeature: (feature, layer) => { //result.push( [ coord[1], coord[0], 80] ); // lat, lng, intensity
let text = ""; //result.push( [ coord[1], coord[0], Math.random()] ); // lat, lng, intensity
for (let p in feature.properties) { result.push( [ coord[1], coord[0], 0.2] ); // lat, lng, intensity
text += `${p}: ${feature.properties[p]}\n`;
}
layer.bindPopup(text);
},
style: function () {
if (title == '2020')
return { color: '#248175', weight: 7, opacity: 0.8 }
else
return { color: "#242c81", weight: 5, opacity: 0.8 }
} }
},
)
.on('popupclose', ($event) => {
})
layer['_id'] = title; //for (let r in geoJson['features']) {
return layer; // result.push( [ result[0][0], result[0][1], 1.0] );
//}
console.log("Points result.length ==>"+ result.length);
console.log("Points result ==>"+ result);
return result;
} }
} }
...@@ -94,11 +94,11 @@ export const MENU_ITEMS: NbMenuItem[] = [ ...@@ -94,11 +94,11 @@ export const MENU_ITEMS: NbMenuItem[] = [
{ {
title: 'Street Traffic', title: 'Street Traffic',
link: '/pages/messina/traffic', link: '/pages/messina/traffic',
}//, },
//{ {
// title: 'Matrix Traffic', title: 'Delay HeatMap',
// link: '/pages/messina/matrix', link: '/pages/messina/matrix',
//} }
], ],
}, },
{ {
......
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"uid": "04t"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54034,
38.16431
]
}
},
{
"type": "Feature",
"properties": {
"uid": "04tbis"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54778,
38.16841
]
}
},
{
"type": "Feature",
"properties": {
"uid": "05t"
},
"geometry": {
"type": "Point",
"coordinates": [
15.541335,
38.16524
]
}
},
{
"type": "Feature",
"properties": {
"uid": "05tbis"
},
"geometry": {
"type": "Point",
"coordinates": [
15.540515,
38.164515
]
}
},
{
"type": "Feature",
"properties": {
"uid": "08t"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54004,
38.16311
]
}
},
{
"type": "Feature",
"properties": {
"uid": "09t"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54011,
38.16299
]
}
},
{
"type": "Feature",
"properties": {
"uid": "09tbis"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54015,
38.164
]
}
},
{
"type": "Feature",
"properties": {
"uid": "103"
},
"geometry": {
"type": "Point",
"coordinates": [
15.545755,
38.170205
]
}
},
{
"type": "Feature",
"properties": {
"uid": "105"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54572,
38.16897
]
}
},
{
"type": "Feature",
"properties": {
"uid": "109"
},
"geometry": {
"type": "Point",
"coordinates": [
15.477375,
38.062725
]
}
},
{
"type": "Feature",
"properties": {
"uid": "10t"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54086,
38.16466
]
}
},
{
"type": "Feature",
"properties": {
"uid": "10tbis"
},
"geometry": {
"type": "Point",
"coordinates": [
15.540935,
38.16485
]
}
},
{
"type": "Feature",
"properties": {
"uid": "11t"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54002,
38.1632
]
}
},
{
"type": "Feature",
"properties": {
"uid": "11tbis"
},
"geometry": {
"type": "Point",
"coordinates": [
15.540565,
38.164635
]
}
},
{
"type": "Feature",
"properties": {
"uid": "1285"
},
"geometry": {
"type": "Point",
"coordinates": [
15.47588,
38.06238
]
}
},
{
"type": "Feature",
"properties": {
"uid": "12t"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54017,
38.16302
]
}
},
{
"type": "Feature",
"properties": {
"uid": "12tbis"
},
"geometry": {
"type": "Point",
"coordinates": [
15.540485,
38.164435
]
}
},
{
"type": "Feature",
"properties": {
"uid": "13t"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54016,
38.164185
]
}
},
{
"type": "Feature",
"properties": {
"uid": "13tbis"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54014,
38.16387
]
}
},
{
"type": "Feature",
"properties": {
"uid": "14t"
},
"geometry": {
"type": "Point",
"coordinates": [
15.5408,
38.16477
]
}
},
{
"type": "Feature",
"properties": {
"uid": "14tbis"
},
"geometry": {
"type": "Point",
"coordinates": [
15.540085,
38.16411
]
}
},
{
"type": "Feature",
"properties": {
"uid": "153"
},
"geometry": {
"type": "Point",
"coordinates": [
15.529115,
38.150175
]
}
},
{
"type": "Feature",
"properties": {
"uid": "155"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54511,
38.169125
]
}
},
{
"type": "Feature",
"properties": {
"uid": "2223"
},
"geometry": {
"type": "Point",
"coordinates": [
15.48097,
38.06534
]
}
},
{
"type": "Feature",
"properties": {
"uid": "2244"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54573,
38.169825
]
}
},
{
"type": "Feature",
"properties": {
"uid": "2245"
},
"geometry": {
"type": "Point",
"coordinates": [
15.47644,
38.06218
]
}
},
{
"type": "Feature",
"properties": {
"uid": "2259"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54559,
38.16902
]
}
},
{
"type": "Feature",
"properties": {
"uid": "2301"
},
"geometry": {
"type": "Point",
"coordinates": [
15.48666,
38.07531
]
}
},
{
"type": "Feature",
"properties": {
"uid": "2302"
},
"geometry": {
"type": "Point",
"coordinates": [
15.475745,
38.06246
]
}
},
{
"type": "Feature",
"properties": {
"uid": "2304"
},
"geometry": {
"type": "Point",
"coordinates": [
15.49717,
38.0839
]
}
},
{
"type": "Feature",
"properties": {
"uid": "2305"
},
"geometry": {
"type": "Point",
"coordinates": [
15.47668,
38.06255
]
}
},
{
"type": "Feature",
"properties": {
"uid": "2306"
},
"geometry": {
"type": "Point",
"coordinates": [
15.545225,
38.16864
]
}
},
{
"type": "Feature",
"properties": {
"uid": "2307"
},
"geometry": {
"type": "Point",
"coordinates": [
15.545105,
38.16919
]
}
},
{
"type": "Feature",
"properties": {
"uid": "2308"
},
"geometry": {
"type": "Point",
"coordinates": [
15.47687,
38.06273
]
}
},
{
"type": "Feature",
"properties": {
"uid": "2309"
},
"geometry": {
"type": "Point",
"coordinates": [
15.47644,
38.062380000000008
]
}
},
{
"type": "Feature",
"properties": {
"uid": "306"
},
"geometry": {
"type": "Point",
"coordinates": [
15.47657,
38.06252
]
}
},
{
"type": "Feature",
"properties": {
"uid": "406"
},
"geometry": {
"type": "Point",
"coordinates": [
15.544775,
38.16862
]
}
},
{
"type": "Feature",
"properties": {
"uid": "414"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54491,
38.16873
]
}
},
{
"type": "Feature",
"properties": {
"uid": "780"
},
"geometry": {
"type": "Point",
"coordinates": [
15.49777,
38.12232
]
}
},
{
"type": "Feature",
"properties": {
"uid": "782"
},
"geometry": {
"type": "Point",
"coordinates": [
15.53939,
38.165355000000008
]
}
},
{
"type": "Feature",
"properties": {
"uid": "783"
},
"geometry": {
"type": "Point",
"coordinates": [
15.53928,
38.16534
]
}
},
{
"type": "Feature",
"properties": {
"uid": "784"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54548,
38.16864
]
}
},
{
"type": "Feature",
"properties": {
"uid": "786"
},
"geometry": {
"type": "Point",
"coordinates": [
15.52909,
38.15015
]
}
},
{
"type": "Feature",
"properties": {
"uid": "789"
},
"geometry": {
"type": "Point",
"coordinates": [
15.550235,
38.175185
]
}
},
{
"type": "Feature",
"properties": {
"uid": "790"
},
"geometry": {
"type": "Point",
"coordinates": [
15.51737,
38.16551
]
}
},
{
"type": "Feature",
"properties": {
"uid": "792"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54572,
38.16853
]
}
},
{
"type": "Feature",
"properties": {
"uid": "795"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54557,
38.16861
]
}
},
{
"type": "Feature",
"properties": {
"uid": "799"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54557,
38.16859
]
}
},
{
"type": "Feature",
"properties": {
"uid": "800"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54499,
38.168465
]
}
},
{
"type": "Feature",
"properties": {
"uid": "801"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54644,
38.1711
]
}
},
{
"type": "Feature",
"properties": {
"uid": "802"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54582,
38.17041
]
}
},
{
"type": "Feature",
"properties": {
"uid": "803"
},
"geometry": {
"type": "Point",
"coordinates": [
15.50268,
38.09568
]
}
},
{
"type": "Feature",
"properties": {
"uid": "804"
},
"geometry": {
"type": "Point",
"coordinates": [
15.48281,
38.0669
]
}
},
{
"type": "Feature",
"properties": {
"uid": "805"
},
"geometry": {
"type": "Point",
"coordinates": [
15.535195,
38.161045
]
}
},
{
"type": "Feature",
"properties": {
"uid": "807"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54078,
38.16533
]
}
},
{
"type": "Feature",
"properties": {
"uid": "808"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54529,
38.16874
]
}
},
{
"type": "Feature",
"properties": {
"uid": "809"
},
"geometry": {
"type": "Point",
"coordinates": [
15.546385,
38.170845
]
}
},
{
"type": "Feature",
"properties": {
"uid": "810"
},
"geometry": {
"type": "Point",
"coordinates": [
15.48827,
38.13235
]
}
},
{
"type": "Feature",
"properties": {
"uid": "811"
},
"geometry": {
"type": "Point",
"coordinates": [
15.513085,
38.1194
]
}
},
{
"type": "Feature",
"properties": {
"uid": "812"
},
"geometry": {
"type": "Point",
"coordinates": [
15.50779,
38.109
]
}
},
{
"type": "Feature",
"properties": {
"uid": "813"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54242,
38.16119
]
}
},
{
"type": "Feature",
"properties": {
"uid": "814"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54612,
38.16899
]
}
},
{
"type": "Feature",
"properties": {
"uid": "815"
},
"geometry": {
"type": "Point",
"coordinates": [
15.5026,
38.09577
]
}
},
{
"type": "Feature",
"properties": {
"uid": "816"
},
"geometry": {
"type": "Point",
"coordinates": [
15.47867,
38.0626
]
}
},
{
"type": "Feature",
"properties": {
"uid": "817"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54591,
38.16966
]
}
},
{
"type": "Feature",
"properties": {
"uid": "818"
},
"geometry": {
"type": "Point",
"coordinates": [
15.491445,
38.135025
]
}
},
{
"type": "Feature",
"properties": {
"uid": "819"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54563,
38.169945
]
}
},
{
"type": "Feature",
"properties": {
"uid": "820"
},
"geometry": {
"type": "Point",
"coordinates": [
15.529345,
38.153635
]
}
},
{
"type": "Feature",
"properties": {
"uid": "821"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54494,
38.16863
]
}
},
{
"type": "Feature",
"properties": {
"uid": "822"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54592,
38.16886
]
}
},
{
"type": "Feature",
"properties": {
"uid": "823"
},
"geometry": {
"type": "Point",
"coordinates": [
15.544955,
38.16907
]
}
},
{
"type": "Feature",
"properties": {
"uid": "824"
},
"geometry": {
"type": "Point",
"coordinates": [
15.545745,
38.16869
]
}
},
{
"type": "Feature",
"properties": {
"uid": "825"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54579,
38.16852
]
}
},
{
"type": "Feature",
"properties": {
"uid": "826"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54577,
38.17038
]
}
},
{
"type": "Feature",
"properties": {
"uid": "828"
},
"geometry": {
"type": "Point",
"coordinates": [
15.48893,
38.07655
]
}
},
{
"type": "Feature",
"properties": {
"uid": "829"
},
"geometry": {
"type": "Point",
"coordinates": [
15.545515,
38.16944
]
}
},
{
"type": "Feature",
"properties": {
"uid": "830"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54582,
38.17045
]
}
},
{
"type": "Feature",
"properties": {
"uid": "831"
},
"geometry": {
"type": "Point",
"coordinates": [
15.545795,
38.16844
]
}
},
{
"type": "Feature",
"properties": {
"uid": "832"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54615,
38.16956
]
}
},
{
"type": "Feature",
"properties": {
"uid": "833"
},
"geometry": {
"type": "Point",
"coordinates": [
15.48885,
38.13235
]
}
},
{
"type": "Feature",
"properties": {
"uid": "834"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54612,
38.16985
]
}
},
{
"type": "Feature",
"properties": {
"uid": "835"
},
"geometry": {
"type": "Point",
"coordinates": [
15.53541,
38.15795
]
}
},
{
"type": "Feature",
"properties": {
"uid": "836"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54609,
38.17074
]
}
},
{
"type": "Feature",
"properties": {
"uid": "837"
},
"geometry": {
"type": "Point",
"coordinates": [
15.5459,
38.17046
]
}
},
{
"type": "Feature",
"properties": {
"uid": "838"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54573,
38.1703
]
}
},
{
"type": "Feature",
"properties": {
"uid": "839"
},
"geometry": {
"type": "Point",
"coordinates": [
15.52304,
38.145175
]
}
},
{
"type": "Feature",
"properties": {
"uid": "840"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54597,
38.1706
]
}
},
{
"type": "Feature",
"properties": {
"uid": "a20"
},
"geometry": {
"type": "Point",
"coordinates": [
15.47986,
38.063065
]
}
},
{
"type": "Feature",
"properties": {
"uid": "a21"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54489,
38.16891
]
}
},
{
"type": "Feature",
"properties": {
"uid": "a22"
},
"geometry": {
"type": "Point",
"coordinates": [
15.54089,
38.16505
]
}
}
]
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment