Changeset 18 in josm for src/org/openstreetmap/josm/data


Ignore:
Timestamp:
2005-10-09T20:06:06+02:00 (20 years ago)
Author:
imi
Message:

added Server connection to osm server.

Location:
src/org/openstreetmap/josm/data
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • src/org/openstreetmap/josm/data/GeoPoint.java

    r17 r18  
    5858                return (x-other.x)*(x-other.x)+(y-other.y)*(y-other.y);
    5959        }
    60        
     60
    6161        /**
    6262         * @return <code>true</code>, if the other GeoPoint has the same lat/lon values.
    6363         */
    6464        public boolean equalsLatLon(GeoPoint other) {
    65                 return lat == other.lat && lon == other.lon;
     65                return lat == other.lat && lon == other.lon &&
     66                                !Double.isNaN(lat) && !Double.isNaN(lon);
    6667        }
    6768}
  • src/org/openstreetmap/josm/data/Preferences.java

    r17 r18  
    4545        private boolean drawRawGpsLines = false;
    4646        /**
     47         * Force the drawing of lines between raw gps points if there are no
     48         * lines in the imported document.
     49         */
     50        private boolean forceRawGpsLines = false;
     51        /**
    4752         * Whether nodes on the same place should be considered identical.
    4853         */
    4954        public boolean mergeNodes = true;
    50        
    51        
     55
     56        /**
     57         * Base URL to the osm data server
     58         */
     59        public String osmDataServer = "http://www.openstreetmap.org/api/0.1";
     60        /**
     61         * The username to the osm server
     62         */
     63        public String osmDataUsername = "";
     64        /**
     65         * The stored password or <code>null</code>, if the password should not be
     66         * stored.
     67         */
     68        public String osmDataPassword = null;
    5269
    5370        /**
     
    105122                        }
    106123
     124                        Element osmServer = root.getChild("osm-server");
     125                        if (osmServer != null) {
     126                                osmDataServer = osmServer.getChildText("url");
     127                                osmDataUsername = osmServer.getChildText("username");
     128                                osmDataPassword = osmServer.getChildText("password");
     129                        }
    107130                        mergeNodes = root.getChild("mergeNodes") != null;
    108131                        drawRawGpsLines = root.getChild("drawRawGpsLines") != null;
     
    129152                if (drawRawGpsLines)
    130153                        children.add(new Element("drawRawGpsLines"));
     154                Element osmServer = new Element("osm-server");
     155                osmServer.getChildren().add(new Element("url").setText(osmDataServer));
     156                osmServer.getChildren().add(new Element("username").setText(osmDataUsername));
     157                osmServer.getChildren().add(new Element("password").setText(osmDataPassword));
     158                children.add(osmServer);
    131159
    132160                try {
     
    200228                return drawRawGpsLines;
    201229        }
     230        public void setForceRawGpsLines(boolean forceRawGpsLines) {
     231                boolean old = this.forceRawGpsLines;
     232                this.forceRawGpsLines = forceRawGpsLines;
     233                firePropertyChanged("forceRawGpsLines", old, forceRawGpsLines);
     234        }
     235        public boolean isForceRawGpsLines() {
     236                return forceRawGpsLines;
     237        }
    202238}
  • src/org/openstreetmap/josm/data/osm/DataSet.java

    r17 r18  
    33import java.util.Collection;
    44import java.util.Collections;
     5import java.util.HashMap;
    56import java.util.HashSet;
     7import java.util.Iterator;
    68import java.util.LinkedList;
     9import java.util.Map;
     10import java.util.Set;
    711
    812import org.openstreetmap.josm.data.Bounds;
     
    196200         */
    197201        public void mergeFrom(DataSet ds, boolean mergeEqualNodes) {
     202                System.out.println(nodes.size()+" "+pendingLineSegments.size()+" "+tracks.size());
    198203                if (mergeEqualNodes) {
    199                         LinkedList<Node> nodesToAdd = new LinkedList<Node>();
    200                         for (Node n : ds.nodes)
    201                                 for (Node mynode : nodes) {
    202                                         if (mynode.coor.equalsLatLon(n.coor))
    203                                                 mynode.mergeFrom(n);
    204                                         else
    205                                                 nodesToAdd.add(n);
     204                        Map<Node, Node> mergeMap = new HashMap<Node, Node>();
     205                        Set<Node> nodesToAdd = new HashSet<Node>();
     206                        for (Node n : nodes) {
     207                                for (Iterator<Node> it = ds.nodes.iterator(); it.hasNext();) {
     208                                        Node dsn = it.next();
     209                                        if (n.coor.equalsLatLon(dsn.coor)) {
     210                                                mergeMap.put(dsn, n);
     211                                                n.mergeFrom(dsn);
     212                                                it.remove();
     213                                        } else {
     214                                                nodesToAdd.add(dsn);
     215                                        }
    206216                                }
    207                 } else
     217                        }
     218                        nodes.addAll(nodesToAdd);
     219                        for (Track t : ds.tracks) {
     220                                for (LineSegment ls : t.segments()) {
     221                                        Node n = mergeMap.get(ls.getStart());
     222                                        if (n != null)
     223                                                ls.start = n;
     224                                        n = mergeMap.get(ls.getEnd());
     225                                        if (n != null)
     226                                                ls.end = n;
     227                                }
     228                        }
     229                        tracks.addAll(ds.tracks);
     230                        for (LineSegment ls : ds.pendingLineSegments) {
     231                                Node n = mergeMap.get(ls.getStart());
     232                                if (n != null)
     233                                        ls.start = n;
     234                                n = mergeMap.get(ls.getEnd());
     235                                if (n != null)
     236                                        ls.end = n;
     237                        }
     238                        pendingLineSegments.addAll(ds.pendingLineSegments);
     239                } else {
    208240                        nodes.addAll(ds.nodes);
    209                 tracks.addAll(ds.tracks);
    210                 pendingLineSegments.addAll(ds.pendingLineSegments);
     241                        tracks.addAll(ds.tracks);
     242                        pendingLineSegments.addAll(ds.pendingLineSegments);
     243                }
     244                System.out.println(nodes.size()+" "+pendingLineSegments.size()+" "+tracks.size());
    211245        }
    212246
  • src/org/openstreetmap/josm/data/osm/LineSegment.java

    r9 r18  
    1818         * The starting node of the line segment
    1919         */
    20         private Node start;
     20        Node start;
    2121       
    2222        /**
    2323         * The ending node of the line segment
    2424         */
    25         private Node end;
     25        Node end;
    2626
    2727        /**
Note: See TracChangeset for help on using the changeset viewer.