mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-03-20 04:59:16 +00:00
Move the :initialLatitude and :initialLongitude methods from the OpenStreetMap service to the MapCenterCalculator service.
This commit is contained in:
@@ -36,10 +36,10 @@ Darkswarm.directive 'ofnOpenStreetMap', ($window, MapCentreCalculator, Enterpris
|
||||
zoomLevel = 6
|
||||
map = L.map('open-street-map')
|
||||
L.tileLayer.provider(openStreetMapProviderName, openStreetMapProviderOptions).addTo(map)
|
||||
map.setView([initialLatitude(), initialLongitude()], zoomLevel)
|
||||
map.setView([MapCentreCalculator.initialLatitude(), MapCentreCalculator.initialLongitude()], zoomLevel)
|
||||
|
||||
displayEnterprises = ->
|
||||
for enterprise in geocodedEnterprises()
|
||||
for enterprise in Enterprises.geocodedEnterprises()
|
||||
marker = buildMarker(enterprise, { lat: enterprise.latitude, lng: enterprise.longitude }, enterprise.name).addTo(map)
|
||||
enterpriseNames.push(enterpriseName(enterprise))
|
||||
markers.push(marker)
|
||||
@@ -53,25 +53,9 @@ Darkswarm.directive 'ofnOpenStreetMap', ($window, MapCentreCalculator, Enterpris
|
||||
search: searchEnterprises
|
||||
)
|
||||
overwriteInlinePositionRelativeToAbsoluteOnSearchField()
|
||||
if geocodedEnterprises().length == 0
|
||||
if Enterprises.geocodedEnterprises().length == 0
|
||||
disableSearchField()
|
||||
|
||||
geocodedEnterprises = () ->
|
||||
Enterprises.enterprises.filter (enterprise) ->
|
||||
enterprise.latitude? && enterprise.longitude?
|
||||
|
||||
initialLatitude = () ->
|
||||
if geocodedEnterprises().length > 0
|
||||
MapCentreCalculator.calculate_latitude(geocodedEnterprises())
|
||||
else
|
||||
openStreetMapConfig.open_street_map_default_latitude
|
||||
|
||||
initialLongitude = () ->
|
||||
if geocodedEnterprises().length > 0
|
||||
MapCentreCalculator.calculate_longitude(geocodedEnterprises())
|
||||
else
|
||||
openStreetMapConfig.open_street_map_default_longitude
|
||||
|
||||
overwriteInlinePositionRelativeToAbsoluteOnSearchField = ->
|
||||
$('#open-street-map--search').css("position", "absolute")
|
||||
|
||||
|
||||
@@ -84,3 +84,8 @@ Darkswarm.factory 'Enterprises', (enterprises, ShopsResource, CurrentHub, Taxons
|
||||
|
||||
resetDistance: ->
|
||||
enterprise.distance = null for enterprise in @enterprises
|
||||
|
||||
geocodedEnterprises: =>
|
||||
@enterprises.filter (enterprise) ->
|
||||
enterprise.latitude? && enterprise.longitude?
|
||||
|
||||
|
||||
@@ -2,9 +2,7 @@ Darkswarm.factory "OfnMap", (Enterprises, EnterpriseListModal, MapConfiguration)
|
||||
new class OfnMap
|
||||
constructor: ->
|
||||
@coordinates = {}
|
||||
@enterprises = Enterprises.enterprises.filter (enterprise) ->
|
||||
# Remove enterprises w/o lat or long
|
||||
enterprise.latitude != null || enterprise.longitude != null
|
||||
@enterprises = Enterprises.geocodedEnterprises()
|
||||
@enterprises = @enterprise_markers(@enterprises)
|
||||
|
||||
enterprise_markers: (enterprises) ->
|
||||
|
||||
@@ -1,10 +1,17 @@
|
||||
Darkswarm.factory 'MapCentreCalculator', ->
|
||||
Darkswarm.factory 'MapCentreCalculator', (Enterprises, openStreetMapConfig) ->
|
||||
new class MapCentreCalculator
|
||||
calculate_latitude: (coordinates) =>
|
||||
@_calculate("latitude", coordinates)
|
||||
|
||||
calculate_longitude: (coordinates) =>
|
||||
@_calculate("longitude", coordinates)
|
||||
initialLatitude: =>
|
||||
if Enterprises.geocodedEnterprises().length > 0
|
||||
@_calculate("latitude", Enterprises.geocodedEnterprises())
|
||||
else
|
||||
openStreetMapConfig.open_street_map_default_latitude
|
||||
|
||||
initialLongitude: =>
|
||||
if Enterprises.geocodedEnterprises().length > 0
|
||||
@_calculate("longitude", Enterprises.geocodedEnterprises())
|
||||
else
|
||||
openStreetMapConfig.open_street_map_default_longitude
|
||||
|
||||
_calculate: (angleName, coordinates) =>
|
||||
positiveAngles = []
|
||||
|
||||
Reference in New Issue
Block a user