Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Iss16 #17

Merged
merged 4 commits into from
Apr 13, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 50 additions & 7 deletions adressevask/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
</span>
<!-- vis statistik -->
<button id="statistik" type="button" class="btn btn-warning" data-toggle="modal" data-target="#myModal">VIS MATCH</button>
<a href="#" id="hentdata" class="btn btn-primary" role="button"></a>
<button id="hentdata" type="button" class="btn btn-primary" data-toggle="modal" data-target="#hentgeojson">HENT GEOJSON</button>
</div>
<div class="col-sm-3 text-right">
<button id="rydkort" class="btn btn-default" style="display: inline-block;">RYD KORTET</button>
Expand Down Expand Up @@ -81,16 +81,16 @@ <h4 class="modal-title">MATCHSTATISTIK</h4>
</tr>
</thead>
<tbody>
<tr>
<td id='katA'></td>
<td id='katB'></td>
<td id='katC'></td>
</tr>
<tr>
<td><img src="img/a.png" alt="Kategori A" /></td>
<td><img src="img/b.png" alt="Kategori B" /></td>
<td><img src="img/c.png" alt="Kategori C" /></td>
</tr>
<tr>
<td id='katA'></td>
<td id='katB'></td>
<td id='katC'></td>
</tr>
</tbody>
</table>
</div>
Expand All @@ -102,6 +102,48 @@ <h4 class="modal-title">MATCHSTATISTIK</h4>
</div>
</div>

<!-- Modal med output -->
<div id="hentgeojson" class="modal fade" role="dialog">
<div class="modal-dialog">

<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">GeoJSON Output</h4>
</div>
<div class="modal-body">
<p>
Vælg ekstra oplysninger fra Danmarks Adresser, som skal tilføjes dine data når de laves om til GeoJSON
</p>
<div id='count'>
<div class="checkbox">
<label><input type="checkbox" value="" id="komkode" checked="checked">Kommunekode</label>
</div>
<div class="checkbox">
<label><input type="checkbox" value="" id="vejkode" checked="checked">Vejkode</label>
</div>
<div class="checkbox">
<label><input type="checkbox" value="" id="husnr" checked="checked">Husnummer</label>
</div>
<div class="checkbox">
<label><input type="checkbox" value="" id="etage" checked="checked">Etage</label>
</div>
<div class="checkbox">
<label><input type="checkbox" value="" id="doer" checked="checked">Dør/Side</label>
</div>
<div class="checkbox">
<label><input type="checkbox" value="" id="adrurl" checked="checked">Adresse URL</label>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" id="geojson" data-dismiss="modal">DOWNLOAD</button>
</div>
</div>
</div>
</div>

<!-- OM løsningen -->
<div id="om" class="modal fade" role="dialog">
<div class="modal-dialog">
Expand All @@ -114,13 +156,14 @@ <h4 class="modal-title">Om løsningen</h4>
</div>
<div class="modal-body">
<p>Adressevasekeren bruger <a href="http://dawa.aws.dk/adressedok#datavask" target="_blank" style="color:black; text-decoration: underline;">DAWA's datavask</a> til at geokode adresser fra CSV-fil, som vises på kort og med muligheden for at gemme data
lokalt som GeoJSON. CSV-filen skal have tegnsætning UTF-8 og kan både være semikolon- eller kommasepareret men skal indeholde en kolonne med adresser som hedder "adresse". GeoJSON-filen vil indeholde de oprindelige data fra CSV'en, men også kooridinater
lokalt som GeoJSON. CSV-filen skal have tegnsætning UTF-8 og kan både være semikolon- eller kommasepareret men skal indeholde en kolonne med adresser som hedder "adresse". GeoJSON-filen vil indeholde de oprindelige data fra CSV'en, men også en officiel vaskeadresse
samt matchkategori, som angiver hvor godt adressevasken er gået.</p>
<li>A = Præcist match</li>
<li>B = Sikkert match</li>
<li>C = Usikkert match</li>
</br>
<p>
Det er muligt at tilføje data yderligere oplysniger fra Danmarks Adresser i dialogen der kommer frem når GeoJSON skal hentes.
Laves der adressesøgning i søgefeltet før eller efter en CSV-fil er vasket uden kortet rydes, vil disse også blive tilføjet GeoJSON-filen.
</p>
</div>
Expand Down
73 changes: 56 additions & 17 deletions adressevask/js/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,10 @@ $(document).ready(function() {
trigger: 'hover'
})

$('#geojson').click(function() {
outputData();
});

//Global array som fyldes op med csv-data og kooridinater m.m. fra DAWA
var output = [];

Expand Down Expand Up @@ -132,6 +136,7 @@ $(document).ready(function() {
adresse[index].lon = koordinater[0];
adresse[index].matchkategori = kategori;
adresse[index].officieladresse = data.adressebetegnelse;
//Disse attributter kan tilvælges i modal
adresse[index].kommunenr = data.adgangsadresse.kommune.kode;
adresse[index].vejkode = data.adgangsadresse.vejstykke.kode;
adresse[index].husnr = data.adgangsadresse.husnr;
Expand All @@ -140,28 +145,64 @@ $(document).ready(function() {
adresse[index].adresseurl = data.href;
//det opdaterede objekt skubbes ind i den globale output array
output.push(adresse[index]);
});
});
});
});
//console.log(data.adressebetegnelse);
//console.log(output);
}); //getJSON adgangsadresse
}); //each datavask
}); //getJSON datavadk
}); //each CSV
}

function outputData() {

//Cloner output for at bevare original data, så bruger kan
//ombestemme sig når attributter vælges i download dialog
var outputCopy = $.extend(true, [], output);
//if som fjerner attributter, hvis der ikke er checked i modal
if ($('#komkode').prop('checked') == false) {
for (var i = 0; i < outputCopy.length; i++) {
delete outputCopy[i].kommunenr;
}
}
if ($('#vejkode').prop('checked') == false) {
for (var i = 0; i < outputCopy.length; i++) {
delete outputCopy[i].vejkode;
}
}
if ($('#husnr').prop('checked') == false) {
for (var i = 0; i < outputCopy.length; i++) {
delete outputCopy[i].husnr;
}
}
if ($('#etage').prop('checked') == false) {
for (var i = 0; i < outputCopy.length; i++) {
delete outputCopy[i].etage;
}
}
if ($('#doer').prop('checked') == false) {
for (var i = 0; i < outputCopy.length; i++) {
delete outputCopy[i].doer;
}
}
if ($('#adrurl').prop('checked') == false) {
for (var i = 0; i < outputCopy.length; i++) {
delete outputCopy[i].adresseurl;
}
}

//output array laves om til geojson med GeoJSON JS-bibliotek.
var obj = GeoJSON.parse(output, {
var obj = GeoJSON.parse(outputCopy, {
Point: ['lat', 'lon']
});

//gem fil lokalt
//data som skal gemmes lokalt laves til en geojson tekst
var data = "text/json;charset=utf-8," + encodeURIComponent(JSON.stringify(obj));

var a = document.createElement('a');
a.href = 'data:' + data;
a.download = 'adressevask.geojson';
a.innerHTML = 'HENT GEOJSON';

var container = document.getElementById('hentdata');
container.appendChild(a);
//der laves link som indeholder parset geojson til download
var a = $("<a>")
.attr("href", 'data:' + data)
.attr("download", 'adressevask.geojson')
.appendTo("body")[0].click(); //linket åbnes/download dialog
}

function clearMarkers() {
Expand All @@ -183,7 +224,7 @@ $(document).ready(function() {
var a = []
var b = []
var c = []
//for hver kategori fyldes array om med værdier
//for hver kategori fyldes array om med værdier
$.each(output, function(index, value) {
switch (output[index].matchkategori) {
case 'A':
Expand Down Expand Up @@ -227,11 +268,9 @@ $(document).ready(function() {
ajaxStop: function() {
$body.removeClass("loading");
//Knapperne hentdata/rydkort vises efter endt ajax
$("#hentdata").empty().show(); //hent data knappen tømmes så ikke link dubleres
$("#hentdata").show(); //hent data knappen tømmes så ikke link dubleres
$("#rydkort").show();
$("#statistik").show();
//output data tilføjes til hent knappen som href med funktionen
outputData();
//statistik for match beregnes og tilføjes modal
countKategori();
}
Expand Down