Changeset 32845 in osm for applications/editors


Ignore:
Timestamp:
2016-08-20T03:22:25+02:00 (8 years ago)
Author:
donvip
Message:

checkstyle

Location:
applications/editors/josm/plugins/pointInfo/src/org/openstreetmap/josm/plugins/pointinfo
Files:
4 added
2 edited
1 moved

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/pointInfo/src/org/openstreetmap/josm/plugins/pointinfo/PointInfoAction.java

    r32844 r32845  
    2525import org.openstreetmap.josm.gui.PleaseWaitRunnable;
    2626import org.openstreetmap.josm.gui.progress.ProgressMonitor;
     27import org.openstreetmap.josm.plugins.pointinfo.ruian.RuianModule;
    2728import org.openstreetmap.josm.tools.ImageProvider;
    2829import org.openstreetmap.josm.tools.OpenBrowser;
     
    3536
    3637    protected boolean cancel;
    37     protected ruianModule mRuian = new ruianModule();
     38    protected RuianModule mRuian = new RuianModule();
    3839
    3940    private String htmlText = "";
  • applications/editors/josm/plugins/pointInfo/src/org/openstreetmap/josm/plugins/pointinfo/PointInfoPlugin.java

    r32844 r32845  
    99/**
    1010 * This is the main class for the PointInfo plugin.
     11 * @author Marián Kyral
    1112 */
    1213public class PointInfoPlugin extends Plugin {
  • applications/editors/josm/plugins/pointInfo/src/org/openstreetmap/josm/plugins/pointinfo/ruian/RuianModule.java

    r32844 r32845  
    1 /**
    2  *  PointInfo - plugin for JOSM
    3  *  Marian Kyral
    4  *
    5  *  This program is free software; you can redistribute it and/or modify
    6  *  it under the terms of the GNU General Public License as published by
    7  *  the Free Software Foundation; either version 2 of the License, or
    8  *  (at your option) any later version.
    9  *
    10  *  This program is distributed in the hope that it will be useful,
    11  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
    12  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    13  *  GNU General Public License for more details.
    14  *
    15  *  You should have received a copy of the GNU General Public License along
    16  *  with this program; if not, write to the Free Software Foundation, Inc.,
    17  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
    18  */
    19 
    20 package org.openstreetmap.josm.plugins.pointinfo;
    21 
    22 import static org.openstreetmap.josm.tools.I18n.tr;
     1// License: GPL. For details, see LICENSE file.
     2package org.openstreetmap.josm.plugins.pointinfo.ruian;
    233
    244import org.openstreetmap.josm.Main;
    25 import org.openstreetmap.josm.data.osm.OsmPrimitive;
    265import org.openstreetmap.josm.data.coor.LatLon;
    27 import org.openstreetmap.josm.data.osm.Node;
    28 import org.openstreetmap.josm.data.osm.Tag;
    29 import org.openstreetmap.josm.data.osm.TagCollection;
    30 import org.openstreetmap.josm.gui.Notification;
    31 import org.openstreetmap.josm.tools.Utils;
    32 
    33 import org.openstreetmap.josm.command.AddCommand;
    34 import org.openstreetmap.josm.command.Command;
    35 import org.openstreetmap.josm.command.SequenceCommand;
    36 
    37 import java.io.InputStream;
    38 import java.io.ByteArrayInputStream;
    39 
    40 import java.text.DecimalFormat;
    41 import java.text.DecimalFormatSymbols;
    42 
    43 import javax.json.Json;
    44 import javax.json.JsonException;
    45 import javax.json.JsonArray;
    46 import javax.json.JsonObject;
    47 import javax.json.JsonReader;
    48 import javax.json.JsonValue;
    49 
    50 
    51 import java.util.*;
    52 import java.lang.StringBuilder;
     6import org.openstreetmap.josm.plugins.pointinfo.PointInfoServer;
    537
    548/**
    55  * Private class to store address places
    56  *
     9 * A module for the Czech RUIAN database
     10 * @author Marián Kyral
    5711 */
     12public class RuianModule {
    5813
    59 class addrPlaces {
    60     private long    m_ruian_id;
    61     private LatLon  m_position;
    62     private long    m_budova_id;
    63     private String  m_cislo_typ;
    64     private String  m_cislo_domovni;
    65     private String  m_cislo_orientacni;
    66     private long    m_ulice_kod;
    67     private String  m_ulice;
    68     private long    m_cast_obce_kod;
    69     private String  m_cast_obce;
    70     private long    m_mestska_cast_kod;
    71     private String  m_mestska_cast;
    72     private long    m_obec_kod;
    73     private String  m_obec;
    74     private long    m_okres_kod;
    75     private String  m_okres;
    76     private long    m_kraj_kod;
    77     private String  m_kraj;
    78     private String  m_psc;
    79     private float   m_vzdalenost;
     14    private String m_text = "";
     15    private String URL = "http://josm.poloha.net/pointInfo/v4/index.php";
     16    protected PointInfoServer server = new PointInfoServer();
    8017
    81     public addrPlaces () {
    82       init();
    83     }
     18    private RuianRecord m_record = new RuianRecord();
    8419
    85     private void init () {
    86       m_ruian_id = 0;
    87       m_position = new LatLon(0., 0.);
    88       m_budova_id = 0;
    89       m_cislo_typ = "";
    90       m_cislo_domovni = "";
    91       m_cislo_orientacni = "";
    92       m_ulice_kod = 0;
    93       m_ulice = "";
    94       m_cast_obce_kod = 0;
    95       m_cast_obce = "";
    96       m_mestska_cast_kod = 0;
    97       m_mestska_cast = "";
    98       m_obec_kod = 0;
    99       m_obec = "";
    100       m_okres_kod = 0;
    101       m_okres = "";
    102       m_kraj_kod = 0;
    103       m_kraj = "";
    104       m_psc = "";
    105       m_vzdalenost = 0;
    106     }
     20    public RuianModule() {
    10721
    108     public void setRuianID (long v) {
    109       m_ruian_id = v;
    110     }
    111 
    112     public void setPosition (LatLon v) {
    113       m_position = v;
    114     }
    115 
    116     public void setBudovaID (long v) {
    117       m_budova_id = v;
    118     }
    119 
    120     public void setCisloTyp (String v) {
    121       m_cislo_typ = v;
    122     }
    123 
    124     public void setCisloDomovni (String v) {
    125       m_cislo_domovni = v;
    126     }
    127 
    128     public void setCisloOrientacni (String v) {
    129       m_cislo_orientacni = v;
    130     }
    131 
    132     public void setUliceID (long v) {
    133       m_ulice_kod = v;
    134     }
    135 
    136     public void setUlice (String v) {
    137       m_ulice = v;
    138     }
    139 
    140     public void setCastObceID (long v) {
    141       m_cast_obce_kod = v;
    142     }
    143 
    144     public void setCastObce (String v) {
    145       m_cast_obce = v;
    146     }
    147 
    148     public void setMestskaCastID (long v) {
    149       m_mestska_cast_kod = v;
    150     }
    151 
    152     public void setMestskaCast (String v) {
    153       m_mestska_cast = v;
    154     }
    155 
    156     public void setObecID (long v) {
    157       m_obec_kod = v;
    158     }
    159 
    160     public void setObec (String v) {
    161       m_obec = v;
    162     }
    163 
    164     public void setOkresID (long v) {
    165       m_okres_kod = v;
    166     }
    167 
    168     public void setOkres (String v) {
    169       m_okres = v;
    170     }
    171 
    172     public void setKrajID (long v) {
    173       m_kraj_kod = v;
    174     }
    175 
    176     public void setKraj (String v) {
    177       m_kraj = v;
    178     }
    179 
    180     public void setPsc (String v) {
    181       m_psc = v;
    182     }
    183 
    184     public void setVzdalenost (float v) {
    185       m_vzdalenost = v;
    186     }
    187 
    188     public long getRuianID () {
    189       return m_ruian_id;
    190     }
    191 
    192     public long getBudovaID () {
    193       return m_budova_id;
    194     }
    195 
    196     public LatLon getPosition () {
    197       return m_position;
    198     }
    199 
    200     public String getCisloTyp () {
    201       return m_cislo_typ;
    202     }
    203 
    204     public String getCisloDomovni () {
    205       return m_cislo_domovni;
    206     }
    207 
    208     public String getCisloOrientacni () {
    209       return m_cislo_orientacni;
    210     }
    211 
    212     public long getUliceID () {
    213       return m_ulice_kod;
    214     }
    215 
    216     public String getUlice () {
    217       return m_ulice;
    218     }
    219 
    220     public long getCastObceID () {
    221       return m_cast_obce_kod;
    222     }
    223 
    224     public String getCastObce () {
    225       return m_cast_obce;
    226     }
    227 
    228     public long getMestskaCastID () {
    229       return m_mestska_cast_kod;
    230     }
    231 
    232     public String getMestskaCast () {
    233       return m_mestska_cast;
    234     }
    235 
    236     public long getObecID () {
    237       return m_obec_kod;
    238     }
    239 
    240     public String getObec () {
    241       return m_obec;
    242     }
    243 
    244     public long getOkresID () {
    245       return m_okres_kod;
    246     }
    247 
    248     public String getOkres () {
    249       return m_okres;
    250     }
    251 
    252     public long getKrajID () {
    253       return m_kraj_kod;
    254     }
    255 
    256     public String getKraj () {
    257       return m_kraj;
    258     }
    259 
    260     public String getPsc () {
    261       return m_psc;
    262     }
    263 
    264     public String getVzdalenost () {
    265       DecimalFormat df = new DecimalFormat("0.00");
    266       return df.format(m_vzdalenost) + "m";
    267     }
    268 
    269 }
    270 
    271 class objectWithoutGeometry {
    272     private long     m_ruian_id;
    273     private int      m_podlazi;
    274     private int      m_byty;
    275     private String   m_zpusob_vyuziti;
    276     private String   m_zpusob_vyuziti_kod;
    277     private String   m_zpusob_vyuziti_key;
    278     private String   m_zpusob_vyuziti_val;
    279     private String   m_dokonceni;
    280     private String   m_plati_od;
    281     private float    m_vzdalenost;
    282 
    283     public objectWithoutGeometry () {
    284       init();
    285     }
    286 
    287     private void init () {
    288       m_ruian_id = 0;
    289       m_podlazi = 0;
    290       m_byty = 0;
    291       m_zpusob_vyuziti = "";
    292       m_zpusob_vyuziti_kod = "";
    293       m_zpusob_vyuziti_key = "";
    294       m_zpusob_vyuziti_val = "";
    295       m_dokonceni = "";
    296       m_plati_od = "";
    297       m_vzdalenost = 0;
    298     }
    299 
    300     public void setRuianID (long v) {
    301       m_ruian_id = v;
    302     }
    303 
    304     public void setPodlazi (int v) {
    305       m_podlazi = v;
    306     }
    307 
    308     public void setByty (int v) {
    309       m_byty = v;
    310     }
    311 
    312     public void setZpusobVyuziti (String v) {
    313       m_zpusob_vyuziti = v;
    314     }
    315 
    316     public void setZpusobVyuzitiKod (String v) {
    317       m_zpusob_vyuziti_kod = v;
    318     }
    319 
    320     public void setZpusobVyuzitiKey (String v) {
    321       m_zpusob_vyuziti_key = v;
    322     }
    323 
    324     public void setZpusobVyuzitiVal (String v) {
    325       m_zpusob_vyuziti_val = v;
    326     }
    327 
    328     public void setDokonceni (String v) {
    329       m_dokonceni = v;
    330     }
    331 
    332     public void setPlatiOd (String v) {
    333       m_plati_od = v;
    334     }
    335 
    336     public void setVzdalenost (float v) {
    337       m_vzdalenost = v;
    338     }
    339 
    340     public long getRuianID () {
    341       return m_ruian_id;
    342     }
    343 
    344     public int getPodlazi () {
    345       return m_podlazi;
    346     }
    347 
    348     public int getByty () {
    349       return m_byty;
    350     }
    351 
    352     public String getZpusobVyuziti () {
    353       return m_zpusob_vyuziti;
    354     }
    355 
    356     public String getZpusobVyuzitiKod () {
    357       return m_zpusob_vyuziti_kod;
    358     }
    359 
    360     public String getZpusobVyuzitiKey () {
    361       return m_zpusob_vyuziti_key;
    362     }
    363 
    364     public String getZpusobVyuzitiVal () {
    365       return m_zpusob_vyuziti_val;
    366     }
    367 
    368     public String getDokonceni () {
    369       return m_dokonceni;
    370     }
    371 
    372     public String getPlatiOd () {
    373       return m_plati_od;
    374     }
    375 
    376     public String getVzdalenost () {
    377       DecimalFormat df = new DecimalFormat("0.00");
    378       return df.format(m_vzdalenost) + "m";
    379     }
    380 }
    381 
    382 /**
    383  * Private class contains RUIAN data
    384  *
    385  */
    386 
    387 class ruianRecord {
    388 
    389     private double   m_coor_lat, m_coor_lon;
    390     private String   m_source;
    391 
    392     private long     m_objekt_ruian_id;
    393     private int      m_objekt_podlazi;
    394     private int      m_objekt_byty;
    395     private String   m_objekt_zpusob_vyuziti;
    396     private String   m_objekt_zpusob_vyuziti_kod;
    397     private String   m_objekt_zpusob_vyuziti_key;
    398     private String   m_objekt_zpusob_vyuziti_val;
    399     private String   m_objekt_dokonceni;
    400     private String   m_objekt_plati_od;
    401 
    402     private String  m_err_user;
    403     private String  m_err_date;
    404     private String  m_err_type;
    405     private String  m_err_note;
    406 
    407     private ArrayList <objectWithoutGeometry> m_so_bez_geometrie;
    408 
    409     private ArrayList <addrPlaces> m_adresni_mista;
    410 
    411     private long     m_parcela_ruian_id;
    412     private String   m_parcela_druh_pozemku;
    413     private String   m_parcela_zpusob_vyuziti;
    414     private String   m_parcela_plati_od;
    415 
    416     private long     m_ulice_ruian_id;
    417     private String   m_ulice_jmeno;
    418 
    419     private long     m_katastr_ruian_id;
    420     private String   m_katastr_nazev;
    421     private long     m_katastr_obec_kod;
    422     private String   m_katastr_obec;
    423     private long     m_katastr_okres_kod;
    424     private String   m_katastr_okres;
    425     private long     m_katastr_kraj_kod;
    426     private String   m_katastr_kraj;
    427 
    428 
    429     /**
    430     * Constructor
    431     *
    432     */
    433     public ruianRecord () {
    434       init();
    435     }
    436 
    437     /**
    438     * Initialization
    439     *
    440     */
    441     private void init () {
    442 
    443       m_coor_lat = 0;
    444       m_coor_lon = 0;
    445       m_source = "";
    446 
    447       m_objekt_ruian_id = 0;
    448       m_objekt_podlazi = 0;
    449       m_objekt_byty = 0;
    450       m_objekt_zpusob_vyuziti = "";
    451       m_objekt_zpusob_vyuziti_kod = "";
    452       m_objekt_zpusob_vyuziti_key = "";
    453       m_objekt_zpusob_vyuziti_val = "";
    454       m_objekt_dokonceni = "";
    455       m_objekt_plati_od = "";
    456 
    457       m_err_user = "";
    458       m_err_date = "";
    459       m_err_type = "";
    460       m_err_note = "";
    461 
    462       m_so_bez_geometrie = new ArrayList<objectWithoutGeometry> ();
    463       m_adresni_mista = new ArrayList<addrPlaces> ();
    464 
    465       m_parcela_ruian_id = 0;
    466       m_parcela_druh_pozemku = "";
    467       m_parcela_zpusob_vyuziti = "";
    468       m_parcela_plati_od = "";
    469 
    470       m_ulice_ruian_id = 0;
    471       m_ulice_jmeno = "";
    472 
    473       m_katastr_ruian_id = 0;
    474       m_katastr_nazev = "";
    475       m_katastr_obec_kod = 0;
    476       m_katastr_obec = "";
    477       m_katastr_okres_kod = 0;
    478       m_katastr_okres = "";
    479       m_katastr_kraj_kod = 0;
    480       m_katastr_kraj = "";
    481 
    482     }
    483 
    484     /**
    485     * Parse given JSON string and fill variables with RUIAN data
    486     *
    487     */
    488     public void parseJSON (String jsonStr) {
    489 
    490 
    491       init();
    492 
    493       JsonReader jsonReader = Json.createReader(new ByteArrayInputStream(jsonStr.getBytes()));
    494       JsonObject obj = jsonReader.readObject();
    495       jsonReader.close();
    496 
    497       try {
    498         JsonObject coorObjekt = obj.getJsonObject("coordinates");
    499 
    500         try {
    501           m_coor_lat = Double.parseDouble(coorObjekt.getString("lat"));
    502         } catch (Exception e) {
    503           System.out.println("coordinates.lat: " + e.getMessage());
    504         }
    505 
    506         try {
    507           m_coor_lon = Double.parseDouble(coorObjekt.getString("lon"));
    508         } catch (Exception e) {
    509           System.out.println("coordinates.lon: " + e.getMessage());
    510         }
    511 
    512         try {
    513           m_source = obj.getString("source");
    514         } catch (Exception e) {
    515           System.out.println("source: " + e.getMessage());
    516         }
    517 
    518       } catch (Exception e) {
    519         System.out.println("coordinates: " + e.getMessage());
    520       }
    521 
    522 // =========================================================================
    523       try {
    524         JsonObject stavebniObjekt = obj.getJsonObject("stavebni_objekt");
    525 
    526         try {
    527           m_objekt_ruian_id = Long.parseLong(stavebniObjekt.getString("ruian_id"));
    528         } catch (Exception e) {
    529           System.out.println("stavebni_objekt.ruian_id: " + e.getMessage());
    530         }
    531 
    532         try {
    533           m_objekt_podlazi = Integer.parseInt(stavebniObjekt.getString("pocet_podlazi"));
    534         } catch (Exception e) {
    535           System.out.println("stavebni_objekt.pocet_podlazi: " + e.getMessage());
    536         }
    537 
    538         try {
    539           m_objekt_byty = Integer.parseInt(stavebniObjekt.getString("pocet_bytu"));
    540         } catch (Exception e) {
    541           System.out.println("stavebni_objekt.pocet_bytu: " + e.getMessage());
    542         }
    543 
    544         try {
    545           m_objekt_zpusob_vyuziti = stavebniObjekt.getString("zpusob_vyuziti");
    546         } catch (Exception e) {
    547           System.out.println("stavebni_objekt.zpusob_vyuziti: " + e.getMessage());
    548         }
    549 
    550         try {
    551           m_objekt_zpusob_vyuziti_kod = stavebniObjekt.getString("zpusob_vyuziti_kod");
    552         } catch (Exception e) {
    553           System.out.println("stavebni_objekt.m_objekt_zpusob_vyuziti_kod: " + e.getMessage());
    554         }
    555 
    556         try {
    557           m_objekt_zpusob_vyuziti_key = stavebniObjekt.getString("zpusob_vyuziti_key");
    558         } catch (Exception e) {
    559           System.out.println("stavebni_objekt.zpusob_vyuziti_key: " + e.getMessage());
    560         }
    561 
    562         try {
    563           m_objekt_zpusob_vyuziti_val = stavebniObjekt.getString("zpusob_vyuziti_val");
    564         } catch (Exception e) {
    565           System.out.println("stavebni_objekt.m_objekt_zpusob_vyuziti_val: " + e.getMessage());
    566         }
    567 
    568         try {
    569           m_objekt_plati_od = stavebniObjekt.getString("plati_od");
    570         } catch (Exception e) {
    571           System.out.println("stavebni_objekt.plati_od: " + e.getMessage());
    572         }
    573 
    574         try {
    575           m_objekt_dokonceni = stavebniObjekt.getString("dokonceni");
    576         } catch (Exception e) {
    577           System.out.println("stavebni_objekt.dokonceni: " + e.getMessage());
    578         }
    579 
    580       } catch (Exception e) {
    581         System.out.println("stavebni_objekt: " + e.getMessage());
    582       }
    583 
    584 // =========================================================================
    585       try {
    586         JsonObject errObjekt = obj.getJsonObject("nahlaseny_problem");
    587 
    588         try {
    589           m_err_user = errObjekt.getString("uzivatel");
    590         } catch (Exception e) {
    591           System.out.println("nahlaseny_problem.uzivatel: " + e.getMessage());
    592         }
    593 
    594         try {
    595           m_err_date = errObjekt.getString("datum");
    596         } catch (Exception e) {
    597           System.out.println("nahlaseny_problem.datum: " + e.getMessage());
    598         }
    599 
    600         try {
    601           m_err_type = errObjekt.getString("duvod");
    602         } catch (Exception e) {
    603           System.out.println("nahlaseny_problem.duvod: " + e.getMessage());
    604         }
    605 
    606         try {
    607           m_err_note = errObjekt.getString("poznamka");
    608         } catch (Exception e) {
    609           System.out.println("nahlaseny_problem.poznamka: " + e.getMessage());
    610         }
    611 
    612       } catch (Exception e) {
    613         System.out.println("nahlaseny_problem: " + e.getMessage());
    614       }
    615 
    616 // =========================================================================
    617       try {
    618         JsonArray arr = obj.getJsonArray("so_bez_geometrie");
    619 
    620         for(int i = 0; i < arr.size(); i++)
    621         {
    622           JsonObject soBezGeom = arr.getJsonObject(i);
    623           objectWithoutGeometry so = new objectWithoutGeometry();
    624 
    625           try {
    626             so.setRuianID(Long.parseLong(soBezGeom.getString("ruian_id")));
    627           } catch (Exception e) {
    628             System.out.println("so_bez_geometrie.ruian_id: " + e.getMessage());
    629           }
    630 
    631           try {
    632             so.setPodlazi(Integer.parseInt(soBezGeom.getString("pocet_podlazi")));
    633           } catch (Exception e) {
    634             System.out.println("so_bez_geometrie.pocet_podlazi: " + e.getMessage());
    635           }
    636 
    637           try {
    638             so.setByty(Integer.parseInt(soBezGeom.getString("pocet_bytu")));
    639           } catch (Exception e) {
    640             System.out.println("so_bez_geometrie.pocet_bytu: " + e.getMessage());
    641           }
    642 
    643           try {
    644             so.setZpusobVyuziti(soBezGeom.getString("zpusob_vyuziti"));
    645           } catch (Exception e) {
    646             System.out.println("so_bez_geometrie.zpusob_vyuziti: " + e.getMessage());
    647           }
    648 
    649           try {
    650             so.setZpusobVyuzitiKod(soBezGeom.getString("zpusob_vyuziti_kod"));
    651           } catch (Exception e) {
    652             System.out.println("so_bez_geometrie.zpusob_vyuziti_kod: " + e.getMessage());
    653           }
    654 
    655           try {
    656             so.setZpusobVyuzitiKey(soBezGeom.getString("zpusob_vyuziti_key"));
    657           } catch (Exception e) {
    658             System.out.println("so_bez_geometrie.zpusob_vyuziti_key: " + e.getMessage());
    659           }
    660 
    661           try {
    662             so.setZpusobVyuzitiVal(soBezGeom.getString("zpusob_vyuziti_val"));
    663           } catch (Exception e) {
    664             System.out.println("so_bez_geometrie.zpusob_vyuziti_val: " + e.getMessage());
    665           }
    666 
    667           try {
    668             so.setDokonceni(soBezGeom.getString("dokonceni"));
    669           } catch (Exception e) {
    670             System.out.println("so_bez_geometrie.dokonceni: " + e.getMessage());
    671           }
    672 
    673           try {
    674             so.setPlatiOd(soBezGeom.getString("plati_od"));
    675           } catch (Exception e) {
    676             System.out.println("so_bez_geometrie.plati_od: " + e.getMessage());
    677           }
    678 
    679           try {
    680             so.setVzdalenost(Float.parseFloat(soBezGeom.getString("vzdalenost")));
    681           } catch (Exception e) {
    682             System.out.println("so_bez_geometrie.vzdalenost: " + e.getMessage());
    683           }
    684 
    685           m_so_bez_geometrie.add(so);
    686         }
    687       } catch (Exception e) {
    688         System.out.println("so_bez_geometrie: " + e.getMessage());
    689       }
    690 
    691 // =========================================================================
    692       try {
    693         JsonArray arr = obj.getJsonArray("adresni_mista");
    694 
    695         for(int i = 0; i < arr.size(); i++)
    696         {
    697           JsonObject adresniMisto = arr.getJsonObject(i);
    698           addrPlaces am = new addrPlaces();
    699 
    700           try {
    701             am.setRuianID(Long.parseLong(adresniMisto.getString("ruian_id")));
    702           } catch (Exception e) {
    703             System.out.println("adresni_mista.ruian_id: " + e.getMessage());
    704           }
    705 
    706           try {
    707             JsonArray node = adresniMisto.getJsonArray("pozice");
    708             am.setPosition(new LatLon(
    709               LatLon.roundToOsmPrecision(node.getJsonNumber(1).doubleValue()),
    710               LatLon.roundToOsmPrecision(node.getJsonNumber(0).doubleValue()))
    711             );
    712           } catch (Exception e) {
    713             System.out.println("adresni_mista.pozice: " + e.getMessage());
    714           }
    715 
    716           try {
    717             am.setBudovaID(Long.parseLong(adresniMisto.getString("budova_kod")));
    718           } catch (Exception e) {
    719             System.out.println("adresni_mista.budova_kod: " + e.getMessage());
    720           }
    721 
    722           try {
    723             am.setCisloTyp(adresniMisto.getString("cislo_typ"));
    724           } catch (Exception e) {
    725             System.out.println("adresni_mista.cislo_typ: " + e.getMessage());
    726           }
    727 
    728           try {
    729             am.setCisloDomovni(adresniMisto.getString("cislo_domovni"));
    730           } catch (Exception e) {
    731             System.out.println("adresni_mista.cislo_domovni: " + e.getMessage());
    732           }
    733 
    734           try {
    735             am.setCisloOrientacni(adresniMisto.getString("cislo_orientacni"));
    736           } catch (Exception e) {
    737             System.out.println("adresni_mista.cislo_orientacni: " + e.getMessage());
    738           }
    739 
    740           try {
    741             am.setUliceID(Long.parseLong(adresniMisto.getString("ulice_kod")));
    742           } catch (Exception e) {
    743             System.out.println("adresni_mista.ulice_kod: " + e.getMessage());
    744           }
    745 
    746           try {
    747             am.setUlice(adresniMisto.getString("ulice"));
    748           } catch (Exception e) {
    749             System.out.println("adresni_mista.ulice: " + e.getMessage());
    750           }
    751 
    752           try {
    753             am.setCastObceID(Long.parseLong(adresniMisto.getString("cast_obce_kod")));
    754           } catch (Exception e) {
    755             System.out.println("adresni_mista.cast_obce_kod: " + e.getMessage());
    756           }
    757 
    758           try {
    759             am.setCastObce(adresniMisto.getString("cast_obce"));
    760           } catch (Exception e) {
    761             System.out.println("adresni_mista.m_cast_obce: " + e.getMessage());
    762           }
    763 
    764           try {
    765             am.setMestskaCastID(Long.parseLong(adresniMisto.getString("mestska_cast_kod")));
    766           } catch (Exception e) {
    767             System.out.println("adresni_mista.mestska_cast_kod: " + e.getMessage());
    768           }
    769 
    770           try {
    771             am.setMestskaCast(adresniMisto.getString("mestska_cast"));
    772           } catch (Exception e) {
    773             System.out.println("adresni_mista.mestska_cast: " + e.getMessage());
    774           }
    775 
    776           try {
    777             am.setObecID(Long.parseLong(adresniMisto.getString("obec_kod")));
    778           } catch (Exception e) {
    779             System.out.println("adresni_mista.obec:_kod " + e.getMessage());
    780           }
    781 
    782           try {
    783             am.setObec(adresniMisto.getString("obec"));
    784           } catch (Exception e) {
    785             System.out.println("adresni_mista.obec: " + e.getMessage());
    786           }
    787 
    788           try {
    789             am.setOkresID(Long.parseLong(adresniMisto.getString("okres_kod")));
    790           } catch (Exception e) {
    791             System.out.println("adresni_mista.okres_kod: " + e.getMessage());
    792           }
    793 
    794           try {
    795             am.setOkres(adresniMisto.getString("okres"));
    796           } catch (Exception e) {
    797             System.out.println("adresni_mista.okres: " + e.getMessage());
    798           }
    799 
    800           try {
    801             am.setKrajID(Long.parseLong(adresniMisto.getString("kraj_kod")));
    802           } catch (Exception e) {
    803             System.out.println("adresni_mista.kraj_kod: " + e.getMessage());
    804           }
    805 
    806           try {
    807             am.setKraj(adresniMisto.getString("kraj"));
    808           } catch (Exception e) {
    809             System.out.println("adresni_mista.kraj: " + e.getMessage());
    810           }
    811 
    812           try {
    813             am.setPsc(adresniMisto.getString("psc"));
    814           } catch (Exception e) {
    815             System.out.println("adresni_mista.psc: " + e.getMessage());
    816           }
    817 
    818           try {
    819             am.setVzdalenost(Float.parseFloat(adresniMisto.getString("vzdalenost")));
    820           } catch (Exception e) {
    821             System.out.println("adresni_mista.vzdalenost: " + e.getMessage());
    822           }
    823 
    824           m_adresni_mista.add(am);
    825         }
    826       } catch (Exception e) {
    827         System.out.println("adresni_mista: " + e.getMessage());
    828       }
    829 
    830 // =========================================================================
    831       try {
    832         JsonObject parcela = obj.getJsonObject("parcela");
    833 
    834         try {
    835           m_parcela_ruian_id = Long.parseLong(parcela.getString("ruian_id"));
    836         } catch (Exception e) {
    837           System.out.println("parcela.ruian_id: " + e.getMessage());
    838         }
    839 
    840         try {
    841           m_parcela_druh_pozemku = parcela.getString("druh_pozemku");
    842         } catch (Exception e) {
    843           System.out.println("parcela.druh_pozemku: " + e.getMessage());
    844         }
    845 
    846         try {
    847           m_parcela_zpusob_vyuziti = parcela.getString("zpusob_vyuziti");
    848         } catch (Exception e) {
    849           System.out.println("parcela.zpusob_vyuziti: " + e.getMessage());
    850         }
    851 
    852         try {
    853           m_parcela_plati_od = parcela.getString("plati_od");
    854         } catch (Exception e) {
    855           System.out.println("parcela.plati_od: " + e.getMessage());
    856         }
    857 
    858       } catch (Exception e) {
    859         System.out.println("parcela: " + e.getMessage());
    860       }
    861 
    862 // =========================================================================
    863       try {
    864         JsonObject ulice = obj.getJsonObject("ulice");
    865 
    866         try {
    867           m_ulice_ruian_id = Long.parseLong(ulice.getString("ruian_id"));
    868         } catch (Exception e) {
    869           System.out.println("ulice.ruian_id: " + e.getMessage());
    870         }
    871 
    872         try {
    873           m_ulice_jmeno = ulice.getString("jmeno");
    874         } catch (Exception e) {
    875           System.out.println("ulice.jmeno: " + e.getMessage());
    876         }
    877 
    878       } catch (Exception e) {
    879         System.out.println("ulice: " + e.getMessage());
    880       }
    881 
    882 // =========================================================================
    883       try {
    884         JsonObject katastr = obj.getJsonObject("katastr");
    885 
    886         try {
    887           m_katastr_ruian_id = Long.parseLong(katastr.getString("ruian_id"));
    888         } catch (Exception e) {
    889           System.out.println("katastr.ruian_id: " + e.getMessage());
    890         }
    891 
    892         try {
    893           m_katastr_nazev = katastr.getString("nazev");
    894         } catch (Exception e) {
    895           System.out.println("katastr.nazev: " + e.getMessage());
    896         }
    897 
    898         try {
    899           m_katastr_obec_kod = Long.parseLong(katastr.getString("obec_kod"));
    900         } catch (Exception e) {
    901           System.out.println("katastr.obec_kod: " + e.getMessage());
    902         }
    903 
    904         try {
    905           m_katastr_obec = katastr.getString("obec");
    906         } catch (Exception e) {
    907           System.out.println("katastr.okres: " + e.getMessage());
    908         }
    909 
    910         try {
    911           m_katastr_okres_kod = Long.parseLong(katastr.getString("okres_kod"));
    912         } catch (Exception e) {
    913           System.out.println("katastr.okres_kod: " + e.getMessage());
    914         }
    915 
    916         try {
    917           m_katastr_okres = katastr.getString("okres");
    918         } catch (Exception e) {
    919           System.out.println("katastr.okres: " + e.getMessage());
    920         }
    921 
    922         try {
    923           m_katastr_kraj_kod = Long.parseLong(katastr.getString("kraj_kod"));
    924         } catch (Exception e) {
    925           System.out.println("katastr.kraj_kod: " + e.getMessage());
    926         }
    927 
    928         try {
    929           m_katastr_kraj = katastr.getString("kraj");
    930         } catch (Exception e) {
    931           System.out.println("katastr.kraj: " + e.getMessage());
    932         }
    933 
    934       } catch (Exception e) {
    935         System.out.println("katastr: " + e.getMessage());
    936       }
    93722    }
    93823
     
    94126     * @return String htmlText
    94227     */
    943     public String getHtml () {
    944 
    945       String icon_ext_link = "<img src=" +getClass().getResource("/images/dialogs/open-external-link.png")+" border=0 alt=\"Zobrazit na stránkách RUIAN\"/>";
    946       String icon_copy_tags = "<img src=" +getClass().getResource("/images/dialogs/copy-tags.png")+" border=0 alt=\"Zobrazit na stránkách RUIAN\"/>";
    947       String icon_create_addr = "<img src=" +getClass().getResource("/images/dialogs/create-addr.png")+" border=0 alt=\"Zobrazit na stránkách RUIAN\"/>";
    948       String icon_create_addr_ruian = "<img src=" +getClass().getResource("/images/dialogs/create-addr-ruian.png")+" border=0 alt=\"Zobrazit na stránkách RUIAN\"/>";
    949 
    950       String icon_ruian_error = "<img src=" +getClass().getResource("/images/dialogs/create-bug-report.png")+" border=0 alt=\"Nahlásit problém v datech\"/>";
    951 
    952       String url_cpost = "http://www.postaonline.cz/vyhledani-psc?p_p_id=psc_WAR_pcpvpp&p_p_lifecycle=1&p_p_state=normal&p_p_mode=view&p_p_col_id=column-1&p_p_col_count=1&_psc_WAR_pcpvpp_struts.portlet.action=%2Fview%2FdetailPost&_psc_WAR_pcpvpp_struts.portlet.mode=view&_psc_WAR_pcpvpp_zipCode=";
    953       String url_stavebni_objekt = "http://vdp.cuzk.cz/vdp/ruian/stavebniobjekty/";
    954       String url_adresni_misto = "http://vdp.cuzk.cz/vdp/ruian/adresnimista/";
    955       String url_parcela = "http://vdp.cuzk.cz/vdp/ruian/parcely/";
    956       String url_katastralni_uzemi = "http://vdp.cuzk.cz/vdp/ruian/katastralniuzemi/";
    957       String url_ulice = "http://vdp.cuzk.cz/vdp/ruian/ulice/";
    958       String url_mistni_cast = "http://vdp.cuzk.cz/vdp/ruian/castiobce/";
    959       String url_mestska_cast = "http://vdp.cuzk.cz/vdp/ruian/mestskecasti/";
    960       String url_obec = "http://vdp.cuzk.cz/vdp/ruian/obce/";
    961       String url_okres = "http://vdp.cuzk.cz/vdp/ruian/okresy/";
    962       String url_kraj = "http://vdp.cuzk.cz/vdp/ruian/vusc/";
    963 
    964       String url_ruian_error = "http://ruian.poloha.net/building.php?kod=";
    965 
    966       StringBuilder r = new StringBuilder();
    967 
    968       if (m_objekt_ruian_id == 0 &&
    969           m_parcela_ruian_id == 0 &&
    970           m_adresni_mista.size() == 0 &&
    971           m_ulice_ruian_id == 0 &&
    972           m_katastr_ruian_id == 0 )
    973         return "";
    974 
    975         r.append("<html><body bgcolor=\"white\" color=\"black\" ><table><tr><td>");
    976       r.append("<br/>");
    977       if (m_objekt_ruian_id > 0) {
    978         r.append("<i><u>Informace o budově</u></i><br/>");
    979         r.append("<b>RUIAN id: </b>"+ m_objekt_ruian_id +"&nbsp;&nbsp;<a href="+ url_stavebni_objekt + m_objekt_ruian_id +">" + icon_ext_link + "</a>");
    980         r.append("&nbsp;&nbsp;<a href=file://tags.copy/building>"+ icon_copy_tags +"</a>");
    981         r.append("&nbsp;&nbsp;<a href=" + url_ruian_error + m_objekt_ruian_id + ">"+ icon_ruian_error +"</a><br/>");
    982         if (m_adresni_mista.size() == 0 ) r.append("<b>Budova: </b> bez č.p./č.e<br/>");
    983         else if (m_adresni_mista.get(0).getCisloTyp().equals("Číslo popisné")) r.append("<b>Budova: </b>s číslem popisným<br/>");
    984           else r.append("<b>Budova: </b>s číslem evidenčním<br/>");
    985         if (m_objekt_podlazi > 0) r.append("<b>Počet podlaží: </b>" + m_objekt_podlazi + "<br/>");
    986         if (m_objekt_byty > 0) r.append("<b>Počet bytů: </b>" + m_objekt_byty + "<br/>");
    987         r.append("<b>Způsob využití: </b>" + m_objekt_zpusob_vyuziti + "<br/>");
    988         r.append("<b>Datum dokončení: </b>" + m_objekt_dokonceni + "<br/>");
    989         r.append("<b>Platí od: </b>" + m_objekt_plati_od + "<br/>");
    990 
    991         if (m_adresni_mista.size() > 1) {
    992           r.append("<i><u>Informace o adrese</u></i><br/>");
    993           // More address places
    994           int i = 0;
    995           r.append("<br/>");
    996           r.append("<b>" + m_adresni_mista.get(i).getCisloTyp() + "</b> (více adres)<b>: </b>" + m_adresni_mista.get(i).getCisloDomovni() + "<br/>");
    997           r.append("<b>Část obce: </b>" + m_adresni_mista.get(i).getCastObce());
    998             r.append("&nbsp;&nbsp;<a href="+ url_mistni_cast + m_adresni_mista.get(i).getCastObceID() +">" + icon_ext_link + "</a><br/>");
    999           if (m_adresni_mista.get(i).getMestskaCast().length() > 0) {
    1000             r.append("<b>Městská část: </b>" + m_adresni_mista.get(i).getMestskaCast());
    1001               r.append("&nbsp;&nbsp;<a href="+ url_mestska_cast + m_adresni_mista.get(i).getMestskaCastID() +">" + icon_ext_link + "</a><br/>");
    1002           }
    1003           r.append("<b>Obec: </b>" + m_adresni_mista.get(i).getObec());
    1004             r.append("&nbsp;&nbsp;<a href="+ url_obec + m_adresni_mista.get(i).getObecID() +">" + icon_ext_link + "</a><br/>");
    1005           r.append("<b>Okres: </b>" + m_adresni_mista.get(i).getOkres());
    1006             r.append("&nbsp;&nbsp;<a href="+ url_okres + m_adresni_mista.get(i).getOkresID() +">" + icon_ext_link + "</a><br/>");
    1007           r.append("<b>Kraj: </b>" + m_adresni_mista.get(i).getKraj());
    1008             r.append("&nbsp;&nbsp;<a href="+ url_kraj + m_adresni_mista.get(i).getKrajID() +">" + icon_ext_link + "</a><br/>");
    1009 
    1010         } else if (m_adresni_mista.size() == 1 && (m_adresni_mista.get(0).getCisloDomovni() == null || m_adresni_mista.get(0).getCisloDomovni().isEmpty())) {
    1011           // Without building number
    1012           int i = 0;
    1013           r.append("<br/>");
    1014           r.append("<i><u>Informace o adrese</u></i><br/>");
    1015           r.append("<b>Budova: </b>" + m_adresni_mista.get(i).getCisloTyp() + "<br/>");
    1016           if (m_adresni_mista.get(i).getMestskaCast().length() > 0) {
    1017             r.append("<b>Městská část: </b>" + m_adresni_mista.get(i).getMestskaCast());
    1018               r.append("&nbsp;&nbsp;<a href="+ url_mestska_cast + m_adresni_mista.get(i).getMestskaCastID() +">" + icon_ext_link + "</a><br/>");
    1019           }
    1020           r.append("<b>Obec: </b>" + m_adresni_mista.get(i).getObec());
    1021             r.append("&nbsp;&nbsp;<a href="+ url_obec + m_adresni_mista.get(i).getObecID() +">" + icon_ext_link + "</a><br/>");
    1022           r.append("<b>Okres: </b>" + m_adresni_mista.get(i).getOkres());
    1023             r.append("&nbsp;&nbsp;<a href="+ url_okres + m_adresni_mista.get(i).getOkresID() +">" + icon_ext_link + "</a><br/>");
    1024           r.append("<b>Kraj: </b>" + m_adresni_mista.get(i).getKraj());
    1025             r.append("&nbsp;&nbsp;<a href="+ url_kraj + m_adresni_mista.get(i).getKrajID() +">" + icon_ext_link + "</a><br/>");
    1026 
    1027         } else if (m_adresni_mista.size() == 1) {
    1028           // Only one address place
    1029           int i = 0;
    1030           String x = "";
    1031           String x_name = "";
    1032           if ( ! m_adresni_mista.get(i).getCisloOrientacni().isEmpty()) {
    1033             x = "/" + m_adresni_mista.get(i).getCisloOrientacni();
    1034             x_name = "/orientační";
    1035           }
    1036           r.append("<br/>");
    1037           r.append("<i><u>Informace o adrese</u></i><br/>");
    1038           r.append("<b>RUIAN id: </b>"+ m_adresni_mista.get(i).getRuianID() +"&nbsp;&nbsp;<a href="+ url_adresni_misto + m_adresni_mista.get(i).getRuianID() +">" + icon_ext_link + "</a>");
    1039           r.append("&nbsp;&nbsp;<a href=file://tags.copy/address:"+i+">"+ icon_copy_tags +"</a>");
    1040           r.append("&nbsp;&nbsp;<a href=file://tags.create/address:"+i+">"+ icon_create_addr +"</a>");
    1041           r.append("&nbsp;&nbsp;<a href=file://tags.create-on-place/address:"+i+">"+ icon_create_addr_ruian +"</a><br/>");
    1042           r.append("<b>" + m_adresni_mista.get(i).getCisloTyp() + x_name + ": </b>" + m_adresni_mista.get(i).getCisloDomovni() + x);
    1043           r.append("<br/>");
    1044           if (!m_adresni_mista.get(i).getUlice().isEmpty()) {
    1045             r.append("<b>Ulice: </b>" + m_adresni_mista.get(i).getUlice());
    1046               r.append("&nbsp;&nbsp;<a href="+ url_ulice + m_adresni_mista.get(i).getUliceID() +">" + icon_ext_link + "</a><br/>");
    1047           }
    1048           r.append("<b>Část obce: </b>" + m_adresni_mista.get(i).getCastObce());
    1049             r.append("&nbsp;&nbsp;<a href="+ url_mistni_cast + m_adresni_mista.get(i).getCastObceID() +">" + icon_ext_link + "</a><br/>");
    1050           if (m_adresni_mista.get(i).getMestskaCast().length() > 0) {
    1051             r.append("<b>Městská část: </b>" + m_adresni_mista.get(i).getMestskaCast());
    1052               r.append("&nbsp;&nbsp;<a href="+ url_mestska_cast + m_adresni_mista.get(i).getMestskaCastID() +">" + icon_ext_link + "</a><br/>");
    1053           }
    1054           r.append("<b>Obec: </b>" + m_adresni_mista.get(i).getObec());
    1055             r.append("&nbsp;&nbsp;<a href="+ url_obec + m_adresni_mista.get(i).getObecID() +">" + icon_ext_link + "</a><br/>");
    1056           r.append("<b>Okres: </b>" + m_adresni_mista.get(i).getOkres());
    1057             r.append("&nbsp;&nbsp;<a href="+ url_okres + m_adresni_mista.get(i).getOkresID() +">" + icon_ext_link + "</a><br/>");
    1058           r.append("<b>Kraj: </b>" + m_adresni_mista.get(i).getKraj());
    1059             r.append("&nbsp;&nbsp;<a href="+ url_kraj + m_adresni_mista.get(i).getKrajID() +">" + icon_ext_link + "</a><br/>");
    1060           r.append("<b>PSČ: </b>" + m_adresni_mista.get(i).getPsc());
    1061             r.append("&nbsp;&nbsp;<a href="+ url_cpost + m_adresni_mista.get(i).getPsc() +">" + icon_ext_link + "</a><br/>");
    1062 
    1063         }
    1064          r.append("<br/>");
    1065       }
    1066 
    1067       // Reported errors
    1068       if (m_objekt_ruian_id > 0 && !m_err_user.equals("")) {
    1069           r.append("<i><u>Nahlášený problém</u></i>");
    1070           r.append("&nbsp;&nbsp;<a href=" + url_ruian_error + m_objekt_ruian_id + ">"+ icon_ext_link +"</a><br/>");
    1071           r.append("<b>Nahlásil: </b>" + m_err_user);
    1072           r.append("<br/>");
    1073           r.append("<b>Dne: </b>" + m_err_date);
    1074           r.append("<br/>");
    1075           r.append("<b>Typ problému: </b>" + m_err_type);
    1076           r.append("<br/>");
    1077           if (!m_err_note.equals("")) {
    1078             r.append("<b>Poznámka: </b>" + m_err_note);
    1079             r.append("<br/>");
    1080           }
    1081         r.append("<br/>");
    1082       }
    1083 
    1084       // Address places
    1085       if (m_adresni_mista.size() > 1 && m_objekt_ruian_id > 0) {
    1086         String x = "";
    1087         if (m_adresni_mista.get(0).getCisloTyp().equals("Číslo evidenční")) {
    1088           x = "ev.";
    1089         }
    1090         r.append("<i><u>Adresní místa</u></i><br/>");
    1091         for (int i=0; i<m_adresni_mista.size(); i++) {
    1092           r.append(m_adresni_mista.get(i).getUlice() + " " + x + m_adresni_mista.get(i).getCisloDomovni());
    1093           if (!m_adresni_mista.get(i).getCisloOrientacni().isEmpty()) {
    1094             r.append("/" + m_adresni_mista.get(i).getCisloOrientacni());
    1095           }
    1096           r.append("&nbsp;&nbsp;<a href="+ url_adresni_misto + m_adresni_mista.get(i).getRuianID() + ">"+ icon_ext_link +"</a> ");
    1097           r.append("&nbsp;&nbsp;<a href=file://tags.copy/address:"+i+">"+ icon_copy_tags +"</a>");
    1098           r.append("&nbsp;&nbsp;<a href=file://tags.create/address:"+i+">"+ icon_create_addr +"</a>");
    1099           r.append("&nbsp;&nbsp;<a href=file://tags.create-on-place/address:"+i+">"+ icon_create_addr_ruian +"</a>");
    1100           r.append("<br/>");
    1101         }
    1102         r.append("<br/>");
    1103       }
    1104 
    1105       // Land
    1106       if (m_parcela_ruian_id > 0) {
    1107         r.append("<i><u>Informace o pozemku</u></i>");
    1108         r.append("<br/>");
    1109         r.append("<b>RUIAN id: </b>"+ m_parcela_ruian_id +"&nbsp;&nbsp;<a href="+ url_parcela + m_parcela_ruian_id +">" + icon_ext_link + "</a><br/>");
    1110 //         r.append("&nbsp;&nbsp;<a href=file://tags.copy/parcel>"+ icon_copy_tags +"</a>");
    1111         r.append("<b>Druh pozemku: </b>" + m_parcela_druh_pozemku +"<br/>");
    1112         if (m_parcela_zpusob_vyuziti != "") r.append("<b>Způsob využití: </b>" + m_parcela_zpusob_vyuziti +"<br/>");
    1113         r.append("<b>Platí od: </b>" + m_parcela_plati_od +"<br/>");
    1114         r.append("<br/>");
    1115       }
    1116 
    1117       // Street
    1118       if (m_ulice_ruian_id > 0) {
    1119         r.append("<i><u>Informace o ulici</u></i><br/>");
    1120         r.append("<b>RUIAN id: </b>"+ m_ulice_ruian_id +"&nbsp;&nbsp;<a href="+ url_ulice + m_ulice_ruian_id +">" + icon_ext_link + "</a>");
    1121         r.append("&nbsp;&nbsp;<a href=file://tags.copy/street>"+ icon_copy_tags +"</a><br/>");
    1122         r.append("<b>Jméno: </b>" + m_ulice_jmeno +"<br/>");
    1123         r.append("<br/>");
    1124       }
    1125 
    1126       // Cadastral area
    1127       if (m_katastr_ruian_id > 0) {
    1128         r.append("<b>Katastrální území: </b>" + m_katastr_nazev);
    1129         r.append("&nbsp;&nbsp;<a href="+ url_katastralni_uzemi + m_katastr_ruian_id +">" + icon_ext_link + "</a><br/>");
    1130         r.append("<b>Obec: </b>" + m_katastr_obec);
    1131         r.append("&nbsp;&nbsp;<a href="+ url_obec + m_katastr_obec_kod +">" + icon_ext_link + "</a><br/>");
    1132         r.append("<b>Okres: </b>" + m_katastr_okres);
    1133         r.append("&nbsp;&nbsp;<a href="+ url_okres + m_katastr_okres_kod +">" + icon_ext_link + "</a><br/>");
    1134         r.append("<b>Kraj: </b>" + m_katastr_kraj);
    1135         r.append("&nbsp;&nbsp;<a href="+url_kraj + m_katastr_kraj_kod +">" + icon_ext_link + "</a><br/>");
    1136         r.append("<br/>");
    1137       }
    1138 
    1139       // Near address places
    1140       if (m_adresni_mista.size() > 0 && m_objekt_ruian_id == 0) {
    1141         String x, x_name;
    1142         r.append("<i><u>Adresní místa v okolí</u></i><br/>");
    1143         r.append("<table>");
    1144         for (int i=0; i<m_adresni_mista.size(); i++) {
    1145           x = "";
    1146           x_name = "";
    1147           if (m_adresni_mista.get(i).getCisloTyp().equals("Číslo evidenční")) {
    1148             x = "ev.";
    1149           }
    1150           x += m_adresni_mista.get(i).getCisloDomovni();
    1151           if ( !m_adresni_mista.get(i).getCisloOrientacni().isEmpty()) {
    1152             x += "/" + m_adresni_mista.get(i).getCisloOrientacni();
    1153             x_name += "/orientační";
    1154           }
    1155           r.append("<tr><td bgcolor=#e5e5ff>");
    1156           if (!m_adresni_mista.get(i).getUlice().isEmpty()) {
    1157             r.append(m_adresni_mista.get(i).getVzdalenost());
    1158             r.append("</td><td valign=\"top\"  bgcolor=#e5e5ff>");
    1159             r.append(m_adresni_mista.get(i).getUlice() + " " + x);
    1160             r.append("<br/><u>" + m_adresni_mista.get(i).getObec() + "</u>");
    1161             r.append("</td><td valign=\"top\"  bgcolor=#e5e5ff>");
    1162             r.append("<a href="+ url_adresni_misto + m_adresni_mista.get(i).getRuianID() + ">"+ icon_ext_link +"</a>");
    1163             r.append("&nbsp;&nbsp;<a href=file://tags.copy/address:"+i+">"+ icon_copy_tags +"</a>");
    1164             r.append("&nbsp;&nbsp;<a href=file://tags.create/address:"+i+">"+ icon_create_addr +"</a>");
    1165             r.append("&nbsp;&nbsp;<a href=file://tags.create-on-place/address:"+i+">"+ icon_create_addr_ruian +"</a>");
    1166           } else {
    1167             r.append(m_adresni_mista.get(i).getVzdalenost());
    1168             r.append("</td><td valign=\"top\"  bgcolor=#e5e5ff>");
    1169             r.append(m_adresni_mista.get(i).getCastObce() + " " + x + "&nbsp;");
    1170             if (!m_adresni_mista.get(i).getCastObce().equals(m_adresni_mista.get(i).getObec())) {
    1171               r.append("<br/><u>" + m_adresni_mista.get(i).getObec() + "</u>");
    1172             }
    1173             r.append("</td><td valign=\"top\"  bgcolor=#e5e5ff>");
    1174             r.append("<a href="+ url_adresni_misto + m_adresni_mista.get(i).getRuianID() + ">"+ icon_ext_link +"</a>");
    1175             r.append("&nbsp;&nbsp;<a href=file://tags.copy/address:"+i+">"+ icon_copy_tags +"</a>");
    1176             r.append("&nbsp;&nbsp;<a href=file://tags.create/address:"+i+">"+ icon_create_addr +"</a>");
    1177             r.append("&nbsp;&nbsp;<a href=file://tags.create-on-place/address:"+i+">"+ icon_create_addr_ruian +"</a>");
    1178           }
    1179           r.append("</td></tr>");
    1180         }
    1181         r.append("</table><br/>");
    1182       }
    1183 
    1184       if (m_so_bez_geometrie.size() > 0) {
    1185         r.append("<i><u>Budovy bez geometrie v okolí</u></i><br/>");
    1186         r.append("<table>");
    1187         for (int i=0; i<m_so_bez_geometrie.size(); i++) {
    1188           r.append("<tr><td bgcolor=#e5e5ff>");
    1189           r.append(m_so_bez_geometrie.get(i).getVzdalenost());
    1190           r.append("</td><td valign=\"top\"  bgcolor=#e5e5ff>");
    1191           r.append(m_so_bez_geometrie.get(i).getRuianID());
    1192           if (m_so_bez_geometrie.get(i).getZpusobVyuziti().length() > 0) {
    1193             r.append(" - " + m_so_bez_geometrie.get(i).getZpusobVyuziti());
    1194           }
    1195           r.append("</td><td valign=\"top\"  bgcolor=#e5e5ff>");
    1196           r.append("&nbsp;&nbsp;<a href="+ url_stavebni_objekt + m_so_bez_geometrie.get(i).getRuianID() + ">"+ icon_ext_link +"</a> ");
    1197           r.append("&nbsp;&nbsp;<a href=file://tags.copy/ghost:"+i+">"+ icon_copy_tags +"</a></br>");
    1198           r.append("</td></tr>");
    1199         }
    1200         r.append("</table><br/>");
    1201         r.append("<br/>");
    1202       }
    1203 
    1204       r.append("<hr/>");
    1205       r.append("<center><i><small>Zdroj: <a href=\"http://www.ruian.cz/\">" + m_source + "</a></small></i></center>");
    1206       r.append("</td></tr></table></body></html>");
    1207 
    1208       return r.toString();
    1209     }
    1210 
    1211     /**
    1212      * Convert date from Czech to OSM format
    1213      * @param ruianDate Date in RUIAN (Czech) format DD.MM.YYYY
    1214      * @return String with date converted to OSM data format YYYY-MM-DD
    1215      */
    1216     String convertDate (String ruianDate) {
    1217       String r = new String();
    1218       String[] parts = ruianDate.split("\\.");
    1219       try {
    1220         int day =   Integer.parseInt(parts[0]);
    1221         int month = Integer.parseInt(parts[1]);
    1222         int year =  Integer.parseInt(parts[2]);
    1223         r = new Integer(year).toString() + "-" + String.format("%02d", month) + "-" + String.format("%02d", day);
    1224       } catch (Exception e) {
    1225       }
    1226 
    1227       return r;
    1228     }
    1229 
    1230     /**
    1231      * Construct tag string for clipboard
    1232      * @param k OSM Key
    1233      * @param v OSM Value
    1234      * @return String OSM tag string for clipboard
    1235      */
    1236     String tagToString (String k, String v) {
    1237       String r = "\"" + k + "\"=\"" + v + "\"\n";
    1238       return r;
    1239     }
    1240 
    1241     /**
    1242      * Prepare OSM keys
    1243      * @param keyType What to prepare (building, address, parcel. street)
    1244      * @return String with OSM tags
    1245      */
    1246     String getKeys (String keyType) {
    1247       StringBuilder c = new StringBuilder();
    1248 
    1249       // Copy building tags to clipboard
    1250       if (keyType.equals("building") && m_objekt_ruian_id > 0) {
    1251         c.append(tagToString("ref:ruian:building", Long.toString(m_objekt_ruian_id)));
    1252         if (m_objekt_zpusob_vyuziti_key.length() > 0 &&
    1253             m_objekt_zpusob_vyuziti_val.length() > 0
    1254            ) {
    1255           c.append(tagToString(m_objekt_zpusob_vyuziti_key, m_objekt_zpusob_vyuziti_val));
    1256         }
    1257         if (m_objekt_podlazi > 0) {
    1258           c.append(tagToString("building:levels", Integer.toString(m_objekt_podlazi)));
    1259         }
    1260         if (m_objekt_byty > 0) {
    1261           c.append(tagToString("building:flats", Integer.toString(m_objekt_byty)));
    1262         }
    1263         if (m_objekt_dokonceni.length() > 0 && convertDate(m_objekt_dokonceni).length() > 0) {
    1264           c.append(tagToString("start_date", convertDate(m_objekt_dokonceni)));
    1265         }
    1266         if (m_objekt_zpusob_vyuziti_kod.length() > 0) {
    1267           c.append(tagToString("building:ruian:type", m_objekt_zpusob_vyuziti_kod));
    1268         }
    1269         c.append(tagToString("source", "cuzk:ruian"));
    1270       }
    1271 
    1272       if (keyType.startsWith("ghost") && m_so_bez_geometrie.size() > 0) {
    1273         String[] key = keyType.split(":");
    1274         int i = new Integer(key[1]);
    1275         System.out.println("Ghost ID: " + i);
    1276 
    1277         c.append(tagToString("ref:ruian:building", Long.toString(m_so_bez_geometrie.get(i).getRuianID())));
    1278         if (m_so_bez_geometrie.get(i).getZpusobVyuzitiKey().length() > 0 &&
    1279             m_so_bez_geometrie.get(i).getZpusobVyuzitiVal().length() > 0
    1280            ) {
    1281           c.append(tagToString(m_so_bez_geometrie.get(i).getZpusobVyuzitiKey(), m_so_bez_geometrie.get(i).getZpusobVyuzitiVal()));
    1282         }
    1283         if (m_so_bez_geometrie.get(i).getPodlazi() > 0) {
    1284           c.append(tagToString("building:levels", Integer.toString(m_so_bez_geometrie.get(i).getPodlazi())));
    1285         }
    1286         if (m_so_bez_geometrie.get(i).getByty() > 0) {
    1287           c.append(tagToString("building:flats", Integer.toString(m_so_bez_geometrie.get(i).getByty())));
    1288         }
    1289         if (m_so_bez_geometrie.get(i).getDokonceni().length() > 0 && convertDate(m_so_bez_geometrie.get(i).getDokonceni()).length() > 0) {
    1290           c.append(tagToString("start_date", convertDate(m_so_bez_geometrie.get(i).getDokonceni())));
    1291         }
    1292         if (m_so_bez_geometrie.get(i).getZpusobVyuzitiKod().length() > 0) {
    1293           c.append(tagToString("building:ruian:type", m_so_bez_geometrie.get(i).getZpusobVyuzitiKod()));
    1294         }
    1295         c.append(tagToString("source", "cuzk:ruian"));
    1296       }
    1297 
    1298       // Copy address tags to clipboard
    1299       if (keyType.startsWith("address")) {
    1300         if (m_adresni_mista.size() > 0) {
    1301           int i;
    1302 
    1303           if (m_adresni_mista.size() == 0) {
    1304             i = 0;
    1305           } else {
    1306             String[] key = keyType.split(":");
    1307             i = new Integer(key[1]);
    1308             System.out.println("Address ID: " + i);
    1309           }
    1310 
    1311           // Only one address place
    1312           if (! m_adresni_mista.get(i).getCisloTyp().equals("Číslo evidenční")) {
    1313             // Cislo popisne
    1314             c.append(tagToString("addr:conscriptionnumber", m_adresni_mista.get(i).getCisloDomovni()));
    1315           } else {
    1316             // Cislo evidencni
    1317             c.append(tagToString("addr:provisionalnumber", m_adresni_mista.get(i).getCisloDomovni()));
    1318           }
    1319 
    1320           // Cislo orientacni
    1321           if (!m_adresni_mista.get(i).getCisloOrientacni().isEmpty()) {
    1322             c.append(tagToString("addr:streetnumber", m_adresni_mista.get(i).getCisloOrientacni()));
    1323           }
    1324 
    1325           // Domovni cislo
    1326           StringBuilder addr = new StringBuilder();
    1327           if (! m_adresni_mista.get(i).getCisloTyp().equals("Číslo evidenční")) {
    1328             addr.append(m_adresni_mista.get(i).getCisloDomovni());
    1329           } else {
    1330             addr.append("ev." + m_adresni_mista.get(i).getCisloDomovni());
    1331           }
    1332           if (!m_adresni_mista.get(i).getCisloOrientacni().isEmpty()) {
    1333             addr.append("/" + m_adresni_mista.get(i).getCisloOrientacni());
    1334           }
    1335           c.append(tagToString("addr:housenumber", addr.toString()));
    1336 
    1337           // Street
    1338           if (!m_adresni_mista.get(i).getUlice().isEmpty()) {
    1339             c.append(tagToString("addr:street", m_adresni_mista.get(i).getUlice()));
    1340           }
    1341           //RUIAN ID
    1342           if (m_adresni_mista.get(i).getRuianID() > 0) {
    1343             c.append(tagToString("ref:ruian:addr", Long.toString(m_adresni_mista.get(i).getRuianID())));
    1344           }
    1345 
    1346           // Place
    1347           if (!m_adresni_mista.get(i).getCastObce().isEmpty()) {
    1348             c.append(tagToString("addr:place", m_adresni_mista.get(i).getCastObce()));
    1349           }
    1350 
    1351           if (!m_adresni_mista.get(i).getMestskaCast().isEmpty()) {
    1352             c.append(tagToString("addr:suburb", m_adresni_mista.get(i).getMestskaCast()));
    1353           }
    1354 
    1355           // City
    1356           if (!m_adresni_mista.get(i).getObec().isEmpty()) {
    1357             c.append(tagToString("addr:city", m_adresni_mista.get(i).getObec()));
    1358           }
    1359 
    1360           // Postcode
    1361           if (!m_adresni_mista.get(i).getPsc().isEmpty()) {
    1362             c.append(tagToString("addr:postcode", m_adresni_mista.get(i).getPsc()));
    1363           }
    1364 
    1365           // Country
    1366           c.append(tagToString("addr:country", "CZ"));
    1367 
    1368           // Source
    1369           c.append(tagToString("source:addr", "cuzk:ruian"));
    1370         }
    1371       }
    1372 
    1373       // Copy parcel tags to clipboard
    1374 
    1375       // Copy street tags to clipboard
    1376       if (keyType.equals("street") && m_ulice_ruian_id > 0) {
    1377         c.append(tagToString("ref:ruian:street", Long.toString(m_ulice_ruian_id)));
    1378         c.append(tagToString("name", m_ulice_jmeno));
    1379         c.append(tagToString("source", "cuzk:ruian"));
    1380       }
    1381 
    1382       return c.toString();
    1383     }
    1384 
    1385     /**
    1386      * Create new address poing on current location with given tags
    1387      * @param cmd What to do: create on clicked position or on ruian position
    1388      * @param t OSM tags in string
    1389      */
    1390     void createAddrPoint (String cmd, String t) {
    1391       Collection<Command> commands = new LinkedList<Command>();
    1392       Node node;
    1393       if (cmd.startsWith("tags.create-on-place")) {
    1394         String[] key = cmd.split(":");
    1395         int i = new Integer(key[1]);
    1396         node = new Node(m_adresni_mista.get(i).getPosition());
    1397       } else {
    1398         node = new Node(new LatLon(m_coor_lat, m_coor_lon));
    1399       }
    1400       commands.add(new AddCommand(node));
    1401 
    1402       Collection<OsmPrimitive> coll = new LinkedList<OsmPrimitive>();
    1403       coll.add(node);
    1404 
    1405       TagCollection tc = new TagCollection();
    1406       ArrayList <String> list = new ArrayList<String>(Arrays.asList(t.split("\n")));
    1407       for (String line : list) {
    1408         String[] tag = line.split("\"=\"");
    1409         System.out.println("<" + tag[0] + ">. <" + tag[1] +">");
    1410         tc.add(new Tag(tag[0].substring(1), tag[1].substring(0,tag[1].length()-1)));
    1411       }
    1412 
    1413       tc.applyTo(coll);
    1414 
    1415       Main.main.undoRedo.add(new SequenceCommand(tr("Add new address point"), commands));
     28    public String getHtml() {
     29        return m_record.getHtml();
    141630    }
    141731
     
    142236     */
    142337    public void performAction(String act) {
    1424 
    1425       System.out.println("act: " + act.substring(7));
    1426       String[] params = act.substring(7).split("/");
    1427       if (!params[0].equals("tags.copy") && !params[0].startsWith("tags.create")) {
    1428         return;
    1429       }
    1430 
    1431       String task = getKeys(params[1]);
    1432 
    1433       // Copy tags to clipboard
    1434       if (params[0].equals("tags.copy")) {
    1435         if (task.length() > 0) {
    1436           Utils.copyToClipboard(task);
    1437           PointInfoUtils.showNotification(tr("Tags copied to clipboard."), "info");
    1438         }
    1439       }
    1440 
    1441       // Create address node
    1442       if (params[0].startsWith("tags.create")) {
    1443         if (task.length() > 0) {
    1444           createAddrPoint(act.substring(7), task);
    1445           PointInfoUtils.showNotification(tr("New address point added."), "info");
    1446         }
    1447       }
    1448     }
    1449 
    1450 }
    1451 
    1452 /**
    1453  * An module for the Czech RUIAN database
    1454  *
    1455  */
    1456 public class ruianModule {
    1457 
    1458     private String m_text = "";
    1459     private String URL = "http://josm.poloha.net/pointInfo/v4/index.php";
    1460     protected PointInfoServer server = new PointInfoServer();
    1461 
    1462     private ruianRecord m_record = new ruianRecord();
    1463 
    1464     public ruianModule() {
    1465 
    1466     }
    1467 
    1468     /**
    1469      * Return Html text representation
    1470      * @return String htmlText
    1471      */
    1472     public String getHtml() {
    1473 
    1474       return m_record.getHtml();
    1475     }
    1476 
    1477     /**
    1478      * Perform given action
    1479      *  e.g.: copy tags to clipboard
    1480      * @param act Action to be performed
    1481      */
    1482     public void performAction(String act) {
    1483 
    1484       m_record.performAction(act);
     38        m_record.performAction(act);
    148539    }
    148640
     
    149145    public void prepareData(LatLon pos) {
    149246        try {
    1493 
    1494              String request = URL + "?lat=" + pos.lat() + "&lon=" + pos.lon();
    1495              System.out.println("Request: "+ request);
    1496              String content = server.callServer(request);
    1497              System.out.println("Reply: " + content);
    1498              m_record.parseJSON(content);
     47            String request = URL + "?lat=" + pos.lat() + "&lon=" + pos.lon();
     48            System.out.println("Request: "+ request);
     49            String content = server.callServer(request);
     50            System.out.println("Reply: " + content);
     51            m_record.parseJSON(content);
    149952        } catch (Exception e) {
    1500 
     53            Main.warn(e);
    150154        }
    150255    }
Note: See TracChangeset for help on using the changeset viewer.