-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathproba.js
More file actions
51 lines (40 loc) · 1.8 KB
/
proba.js
File metadata and controls
51 lines (40 loc) · 1.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
const mesta = [
{ 'koordinate': { 'lat': 45.28028223, 'lng': 16.92837349 }, 'title': 'Jasenovac' },
{ 'koordinate': { 'lat': 43.82941295, 'lng': 16.9979416 }, 'title': 'Livno' },
{ 'koordinate': { 'lat': 44.81072023, 'lng': 20.48544102 }, 'title': 'Belgrade' },
{ 'koordinate': { 'lat': 43.65391537, 'lng': 17.76053537 }, 'title': 'Neretva' },
{ 'koordinate': { 'lat': 43.34605402, 'lng': 18.68679495 }, 'title': 'Sutjeska' }
]
const center = [44.341667, 17.269444] // centar mape
// Dinamičko pronalaženje minimalnih i maksimalnih vrednosti za lat i lng
function findMinMaxCoordinates(mesta) {
let latMin = Infinity
let latMax = -Infinity
let lngMin = Infinity
let lngMax = -Infinity
mesta.forEach(mesto => {
const { lat } = mesto.koordinate
const { lng } = mesto.koordinate
if (lat < latMin) latMin = lat
if (lat > latMax) latMax = lat
if (lng < lngMin) lngMin = lng
if (lng > lngMax) lngMax = lng
})
return { latRange: { min: latMin, max: latMax }, lngRange: { min: lngMin, max: lngMax } }
}
// Funkcija za proračun procenta u opsegu 0-1
function calculatePercentage(koordinate, latRange, lngRange) {
const latPercent = (koordinate.lat - latRange.min) / (latRange.max - latRange.min)
const lngPercent = (koordinate.lng - lngRange.min) / (lngRange.max - lngRange.min)
const clampedLatPercent = Math.min(1, Math.max(0, latPercent))
const clampedLngPercent = Math.min(1, Math.max(0, lngPercent))
return { latPercent: clampedLatPercent, lngPercent: clampedLngPercent }
}
// Pronađi opsege za lat i lng
const { latRange, lngRange } = findMinMaxCoordinates(mesta)
// Izračunaj procente za svako mesto
const mestaProcenti = mesta.map(mesto => ({
title: mesto.title,
procenti: calculatePercentage(mesto.koordinate, latRange, lngRange)
}))
console.log(mestaProcenti)