Modify

Opened 3 hours ago

#24886 new enhancement

Split uploads to OSM API Rate Limits - upload nodes AND ways within rate limit

Reported by: frspp Owned by: team
Priority: normal Milestone:
Component: Core Version: latest
Keywords: template_report Cc:

Description

Hi! Thanks for great software!

I was uploading 580 000 buildings as part of OSM import project. JOSM automatically splits this to 10 000 each, resulting 3 600 uploads. As a result I hit rate limit after 1 000 uploads - with importer role rate limit seems to be 1 million objects per hour.

Currently JOSM first uploads all the nodes, and only at last ways. This lead to situation where like first ~3 000 uploads were only nodes, rate limit stopping the process every now and then, and only next day I was able to finish the uploads and finally got the ways uploaded too. This led to confusion and some conflicts too as few users even happened to edit/add buildings in between.

Would be cool if JOSM would try to fit nodes AND ways within upload's rate limit. To achive this I guess few new options would be good to have in Upload window:

  • Checkbox "Split uploads per Rate Limit"
  • OSM API Rate Limit: By default 1000/hour (normal user's limit)

I guess such options would work with relatively small objects, such as buildings. Dunno about large object like land cover, long roads, lakes etc.

Please provide any additional information below. Attach a screenshot if possible.

Relative:URL: ^/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2026-08-11 15:36:21 +0200 (Tue, 11 Aug 2026)
Revision:19613
Build-Date:2026-08-12 01:30:51
URL:https://josm.openstreetmap.de/svn/trunk

Identification: JOSM/1.5 (19613 en) Mac OS X 15.7.9
OS Build number: macOS 15.7.9 (24G830)
Memory Usage: 4548 MB / 6144 MB (814 MB allocated, but free)
Java version: 21.0.11+10-LTS, Azul Systems, Inc., OpenJDK 64-Bit Server VM
Look and Feel: com.apple.laf.AquaLookAndFeel
Screen: Display 1 2294x1490x32bpp@60Hz (scaling 1.00×1.00) Display 2 1920x1080x32bpp@60Hz (scaling 1.00×1.00)
Maximum Screen Size: 2294×1490
Best cursor sizes: 16×16→16×16, 32×32→32×32
Environment variable LANG: en_FI.UTF-8
System property file.encoding: UTF-8
System property sun.jnu.encoding: UTF-8
Locale info: en_FI
Numbers with default locale: 1234567890 -> 1234567890
VM arguments: [-Djava.util.Arrays.useLegacyMergeSort=true, --add-reads=java.base=ALL-UNNAMED,java.desktop, --add-reads=java.desktop=ALL-UNNAMED,java.naming, --add-reads=java.naming=ALL-UNNAMED,java.desktop, --add-exports=java.desktop/sun.awt=ALL-UNNAMED,java.desktop, --add-exports=java.desktop/javax.jnlp=ALL-UNNAMED,java.desktop, --add-exports=java.base/com.sun.net.ssl.internal.ssl=ALL-UNNAMED,java.desktop, --add-exports=java.base/sun.net.www.protocol.jar=ALL-UNNAMED,java.desktop, --add-exports=java.base/sun.security.action=ALL-UNNAMED,java.desktop, --add-exports=java.base/sun.security.provider=ALL-UNNAMED,java.desktop, --add-exports=java.base/sun.security.util=ALL-UNNAMED,java.desktop, --add-exports=java.base/sun.security.validator=ALL-UNNAMED,java.desktop, --add-exports=java.base/sun.security.x509=ALL-UNNAMED,java.desktop, --add-exports=java.base/jdk.internal.util.jar=ALL-UNNAMED,java.desktop, --add-exports=java.base/sun.net.www.protocol.http=ALL-UNNAMED,java.desktop, --add-exports=java.desktop/sun.awt.X11=ALL-UNNAMED,java.desktop, --add-exports=java.desktop/sun.applet=ALL-UNNAMED,java.desktop,jdk.jsobject, --add-exports=java.naming/com.sun.jndi.toolkit.url=ALL-UNNAMED,java.desktop, --add-modules=java.scripting,java.sql,javafx.controls,javafx.media,javafx.swing,javafx.web, --add-exports=java.desktop/com.apple.eawt=ALL-UNNAMED, --add-exports=java.desktop/com.sun.imageio.spi=ALL-UNNAMED, --add-exports=java.desktop/com.sun.imageio.plugins.jpeg=ALL-UNNAMED, --add-exports=javafx.graphics/com.sun.javafx.application=ALL-UNNAMED, --add-exports=jdk.deploy/com.sun.deploy.config=ALL-UNNAMED, --add-opens=java.base/java.lang=ALL-UNNAMED, --add-opens=java.base/java.nio=ALL-UNNAMED, --add-opens=java.base/jdk.internal.loader=ALL-UNNAMED, --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED, --add-opens=java.desktop/javax.imageio.spi=ALL-UNNAMED, --add-opens=java.desktop/javax.swing.text.html=ALL-UNNAMED, --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED, -Djava.security.manager=allow]

Plugins:
+ Mapillary (1822)
+ conflation (280)
+ jts (36483)
+ utilsplugin2 (36503)

Attachments (0)

Change History (0)

Modify Ticket

Change Properties
Set your email in Preferences
Action
as new The owner will remain team.
as The resolution will be set. Next status will be 'closed'.
to The owner will be changed from team to the specified user.
Next status will be 'needinfo'. The owner will be changed from team to frspp.
as duplicate The resolution will be set to duplicate. Next status will be 'closed'. The specified ticket will be cross-referenced with this ticket.
The owner will be changed from team to anonymous. Next status will be 'assigned'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.