From da245fdf27eb9ddbb490cc595f29f1cbb6072b9b Mon Sep 17 00:00:00 2001 From: "didier.amyot" Date: Sun, 1 Jun 2014 23:07:14 -0400 Subject: [PATCH] - fix bug - can now set "style" on geojson elements --- .../coffee/controllers/geojsonmapCtrl.coffee | 26 ++++++++++++++----- client/partials/geojsonmap.html | 2 +- handlerWrapper.go | 4 ++- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/client/coffee/controllers/geojsonmapCtrl.coffee b/client/coffee/controllers/geojsonmapCtrl.coffee index 83db7f6..e5039ca 100644 --- a/client/coffee/controllers/geojsonmapCtrl.coffee +++ b/client/coffee/controllers/geojsonmapCtrl.coffee @@ -7,6 +7,9 @@ mapCenter = lng: -72.6169 zoom: 7 +getLocalStorageCenter = () -> + JSON.parse(localStorage.getItem("mapCenter")) + getSingleDataUrl = (routeParams) -> @@ -36,9 +39,8 @@ transformListOfGeoJsonToGeometryCollection = (resData, routeParams) -> feature = type: "Feature" geometry: geojson, - properties: - "_vulture_url_link": getDocumentUrl(routeParams, doc._id) - ret.features.push(geojson) + properties: geojson.properties + ret.features.push(feature) return ret @@ -46,7 +48,10 @@ root.controllers.controller('geojsonmapCtrl', ['$scope', '$routeParams', '$locat $scope.geojson = {} $scope.geojsonData = {} $scope.idx = Number($routeParams.idx) - $scope.center = mapCenter + $scope.center = getLocalStorageCenter() + + $scope.$watch 'center', () -> + localStorage.setItem("mapCenter", JSON.stringify($scope.center)) $scope.getAggredatedUrl = () -> url = "#/#{ $routeParams.server }/#{ $routeParams.database }/#{ $routeParams.collection }/idx/all" @@ -72,6 +77,12 @@ root.controllers.controller('geojsonmapCtrl', ['$scope', '$routeParams', '$locat $scope.$on "leafletDirectiveMap.geojsonClick", (ev, featureSelected, leafletEvent) -> $location.url(featureSelected.properties._vulture_url_link); + + $scope.setStyleOnFeature = (feature, element) -> + if feature.properties and feature.properties.style + element.setStyle(feature.properties.style) + + $scope.initSingleDocument = ()-> url = getSingleDataUrl($routeParams) @@ -83,16 +94,17 @@ root.controllers.controller('geojsonmapCtrl', ['$scope', '$routeParams', '$locat $scope.meta = res.data.meta $scope.geojsonData = data: geojson - style: undefined + style: geojson.properties.style or undefined resetStyleOnMouseout: true $scope.initAllDocuments = () -> url = getAllDataUrl($routeParams) util.get(url).then (res) -> $scope.meta = res.data.meta + geojson = transformListOfGeoJsonToGeometryCollection(res.data, $routeParams) $scope.geojsonData = - data: transformListOfGeoJsonToGeometryCollection(res.data, $routeParams) - style: undefined + data: geojson + onEachFeature: $scope.setStyleOnFeature resetStyleOnMouseout: true if $routeParams.idx diff --git a/client/partials/geojsonmap.html b/client/partials/geojsonmap.html index d2c5779..9cafcc2 100644 --- a/client/partials/geojsonmap.html +++ b/client/partials/geojsonmap.html @@ -22,4 +22,4 @@
Aggregated representation
- \ No newline at end of file + diff --git a/handlerWrapper.go b/handlerWrapper.go index d3f92f7..3766ab1 100644 --- a/handlerWrapper.go +++ b/handlerWrapper.go @@ -32,5 +32,7 @@ func (this ApiHandler) ServeHTTP(w http.ResponseWriter, request *http.Request) { w.WriteHeader(200) } enc := json.NewEncoder(w) - enc.Encode(ret) + if err := enc.Encode(ret); err != nil { + log.Println(err) + } }