Changeset 32845 in osm for applications/editors/josm/plugins
- Timestamp:
- 2016-08-20T03:22:25+02:00 (9 years ago)
- 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 25 25 import org.openstreetmap.josm.gui.PleaseWaitRunnable; 26 26 import org.openstreetmap.josm.gui.progress.ProgressMonitor; 27 import org.openstreetmap.josm.plugins.pointinfo.ruian.RuianModule; 27 28 import org.openstreetmap.josm.tools.ImageProvider; 28 29 import org.openstreetmap.josm.tools.OpenBrowser; … … 35 36 36 37 protected boolean cancel; 37 protected ruianModule mRuian = newruianModule();38 protected RuianModule mRuian = new RuianModule(); 38 39 39 40 private String htmlText = ""; -
applications/editors/josm/plugins/pointInfo/src/org/openstreetmap/josm/plugins/pointinfo/PointInfoPlugin.java
r32844 r32845 9 9 /** 10 10 * This is the main class for the PointInfo plugin. 11 * @author Marián Kyral 11 12 */ 12 13 public 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. 2 package org.openstreetmap.josm.plugins.pointinfo.ruian; 23 3 24 4 import org.openstreetmap.josm.Main; 25 import org.openstreetmap.josm.data.osm.OsmPrimitive;26 5 import 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; 6 import org.openstreetmap.josm.plugins.pointinfo.PointInfoServer; 53 7 54 8 /** 55 * Private class to store address places56 * 9 * A module for the Czech RUIAN database 10 * @author Marián Kyral 57 11 */ 12 public class RuianModule { 58 13 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(); 80 17 81 public addrPlaces () { 82 init(); 83 } 18 private RuianRecord m_record = new RuianRecord(); 84 19 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() { 107 21 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 data384 *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 * Constructor431 *432 */433 public ruianRecord () {434 init();435 }436 437 /**438 * Initialization439 *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 data486 *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 }937 22 } 938 23 … … 941 26 * @return String htmlText 942 27 */ 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 +" <a href="+ url_stavebni_objekt + m_objekt_ruian_id +">" + icon_ext_link + "</a>"); 980 r.append(" <a href=file://tags.copy/building>"+ icon_copy_tags +"</a>"); 981 r.append(" <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(" <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(" <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(" <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(" <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(" <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(" <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(" <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(" <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(" <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() +" <a href="+ url_adresni_misto + m_adresni_mista.get(i).getRuianID() +">" + icon_ext_link + "</a>"); 1039 r.append(" <a href=file://tags.copy/address:"+i+">"+ icon_copy_tags +"</a>"); 1040 r.append(" <a href=file://tags.create/address:"+i+">"+ icon_create_addr +"</a>"); 1041 r.append(" <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(" <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(" <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(" <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(" <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(" <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(" <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(" <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(" <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(" <a href="+ url_adresni_misto + m_adresni_mista.get(i).getRuianID() + ">"+ icon_ext_link +"</a> "); 1097 r.append(" <a href=file://tags.copy/address:"+i+">"+ icon_copy_tags +"</a>"); 1098 r.append(" <a href=file://tags.create/address:"+i+">"+ icon_create_addr +"</a>"); 1099 r.append(" <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 +" <a href="+ url_parcela + m_parcela_ruian_id +">" + icon_ext_link + "</a><br/>"); 1110 // r.append(" <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 +" <a href="+ url_ulice + m_ulice_ruian_id +">" + icon_ext_link + "</a>"); 1121 r.append(" <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(" <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(" <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(" <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(" <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(" <a href=file://tags.copy/address:"+i+">"+ icon_copy_tags +"</a>"); 1164 r.append(" <a href=file://tags.create/address:"+i+">"+ icon_create_addr +"</a>"); 1165 r.append(" <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 + " "); 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(" <a href=file://tags.copy/address:"+i+">"+ icon_copy_tags +"</a>"); 1176 r.append(" <a href=file://tags.create/address:"+i+">"+ icon_create_addr +"</a>"); 1177 r.append(" <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(" <a href="+ url_stavebni_objekt + m_so_bez_geometrie.get(i).getRuianID() + ">"+ icon_ext_link +"</a> "); 1197 r.append(" <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(); 1416 30 } 1417 31 … … 1422 36 */ 1423 37 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); 1485 39 } 1486 40 … … 1491 45 public void prepareData(LatLon pos) { 1492 46 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); 1499 52 } catch (Exception e) { 1500 53 Main.warn(e); 1501 54 } 1502 55 }
Note:
See TracChangeset
for help on using the changeset viewer.