mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-02-25 01:23:23 +00:00
Extract out a JS service for calculating where to centre the map when given a set of coordinates.
Also removing the hardcoded default latitude/longitude from open_street_map directive because it's probably not very likely that it will be needed.
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
describe 'MapCentreCalculator service', ->
|
||||
MapCentreCalculator = null
|
||||
defaultLongitude = null
|
||||
defaultLatitude = null
|
||||
|
||||
beforeEach ->
|
||||
module 'Darkswarm'
|
||||
defaultLongitude = -6
|
||||
defaultLatitude = 53
|
||||
|
||||
inject (_MapCentreCalculator_)->
|
||||
MapCentreCalculator = _MapCentreCalculator_
|
||||
|
||||
describe "calculate_latitude", ->
|
||||
it "calculates the center latitude", ->
|
||||
coordinates = [
|
||||
{ latitude: 53, longitude: defaultLongitude },
|
||||
{ latitude: 54, longitude: defaultLongitude }
|
||||
]
|
||||
|
||||
expect(MapCentreCalculator.calculate_latitude(coordinates)).toEqual 53.5
|
||||
|
||||
describe "calculate_longitude", ->
|
||||
it "calculates the center longitude", ->
|
||||
coordinates = [
|
||||
{ latitude: defaultLatitude, longitude: -6 },
|
||||
{ latitude: defaultLatitude, longitude: -7 }
|
||||
]
|
||||
|
||||
expect(MapCentreCalculator.calculate_longitude(coordinates)).toEqual -6.5
|
||||
|
||||
describe "_calculate", ->
|
||||
it "calculates the average angle correctly when given a single angle", ->
|
||||
coordinates = [
|
||||
{ latitude: defaultLatitude, longitude: -7 }
|
||||
]
|
||||
|
||||
expect(MapCentreCalculator._calculate("longitude", coordinates)).toEqual -7
|
||||
|
||||
it "calculates the centre correctly when given a set of positive angles", ->
|
||||
coordinates = [
|
||||
{ latitude: 53, longitude: defaultLongitude },
|
||||
{ latitude: 54, longitude: defaultLongitude }
|
||||
]
|
||||
|
||||
expect(MapCentreCalculator._calculate("latitude", coordinates)).toEqual 53.5
|
||||
|
||||
it "calculates the centre correctly when given a set of negative angles", ->
|
||||
coordinates = [
|
||||
{ latitude: defaultLatitude, longitude: -6 },
|
||||
{ latitude: defaultLatitude, longitude: -7 }
|
||||
]
|
||||
|
||||
expect(MapCentreCalculator._calculate("longitude", coordinates)).toEqual -6.5
|
||||
|
||||
it "calculates the centre correctly when given a mixture of positive and negative angles and the centre is positive", ->
|
||||
coordinates = [
|
||||
{ latitude: defaultLatitude, longitude: 7 },
|
||||
{ latitude: defaultLatitude, longitude: -4 }
|
||||
]
|
||||
|
||||
expect(MapCentreCalculator._calculate("longitude", coordinates)).toEqual 1.5
|
||||
|
||||
it "calculates the centre correctly when given a mixture of positive and negative angles and the centre is negative", ->
|
||||
coordinates = [
|
||||
{ latitude: defaultLatitude, longitude: 4 },
|
||||
{ latitude: defaultLatitude, longitude: -7 }
|
||||
]
|
||||
|
||||
expect(MapCentreCalculator._calculate("longitude", coordinates)).toEqual -1.5
|
||||
Reference in New Issue
Block a user