GithubHelp home page GithubHelp logo

josm / mapillary Goto Github PK

View Code? Open in Web Editor NEW
39.0 5.0 16.0 34.43 MB

the Mapillary plugin for the JOSM OpenStreetMap editor

Home Page: https://wiki.openstreetmap.org/wiki/JOSM/Plugins/Mapillary

License: GNU General Public License v2.0

Java 98.87% Shell 0.04% HTML 0.15% CSS 0.10% Roff 0.54% Python 0.29%
josm mapillary plugin

mapillary's Introduction

Supplemental information for JOSM -- the Java OpenStreetMap Editor

=============================================================================
            I. Install & Launch
=============================================================================

Installation notes
------------------
To run JOSM, you need:

* The JOSM .jar file, e.g., josm-tested.jar or josm-latest.jar
* Java Runtime Environment (JRE) 11, or later.


How to get Java Runtime Environment
-----------------------------------
You need JRE Version 11, or later.

Microsoft Windows and Apple macOS users should visit one of:
- https://www.azul.com/downloads/?package=jdk#download-openjdk
- https://bell-sw.com/pages/downloads/#mn
and download the latest Java executable for their system.

Linux users should visit http://www.oracle.com/technetwork/java/index.html
There is a Linux binary installer, which you must execute from a console, or
use the mechanism of your distribution's packaging system.


How to launch
-------------
Microsoft Windows users launch by double-clicking on the .jar file.
If this does not work, open a command shell and type
"java -jar josm-latest.jar"  in the directory that holds the file. (Please
replace josm-latest.jar with the name of your .jar file, if you aren't using
the latest version.)

Under Linux, open a shell, go to the file directory and type
"java -jar josm-latest.jar" to launch. If this does not work, try to set
your JAVA_HOME variable to the java executable location (the root location,
not the bin).

macOS users just click on the .jar file icon.

=============================================================================
            II. Development
=============================================================================

How to get the source code
--------------------------
Download it directly from the subversion at
https://josm.openstreetmap.de/svn/trunk. To use the command line subversion
client, type

svn co https://josm.openstreetmap.de/svn/trunk josm


Files & directories
-------------------
This is an overview of the files and directories in the JOSM code repository:
- build.xml                 ant build file (standard way to create a JOSM binary)
- CONTRIBUTION              list of major code contributors
- gpl-2.0.txt, gpl-3.0.txt  full text of the GNU General Public License
- LICENSE                   the JOSM license terms
- native/                   OS-specific files
  - linux/                  files useful for Linux distributions, including Appdata files, .desktop
                            files, Debian/Ubuntu scripts, man pages, icons, etc.
  - macosx/                 files needed to create the MacOS package
  - windows/                files needed to create the Windows installer
  - josm.jnlp               Java Web Start launcher file (used on the website for the tested version)
  - josm-latest.jnlp        Java Web Start launcher file (used on the website for the latest version)
- nodist/                   files not included in JOSM binary
  - data/                   data files that are useful for development, but not distributed
    - exif-direction-example.jpg
                            sample image, that contains direction information in the EXIF header
                            (keys: Exif.GPSInfo.GPSImgDirectionRef, Exif.GPSInfo.GPSImgDirection)
    - filterTests.osm       used for unit testing of the filter feature
                            (see test/unit/org/openstreetmap/josm/data/osm/FilterTest.java)
    - Join_Areas_Tests.osm  some examples to test the 'join areas' feature
    - *.*                   various other data files used for unit testing and as reference file
    - projection/           projection files
      - *.gsb               NTv2 grid files for projection support, downloaded by the
                            client on demand (see CONTRIBUTION)
      - CHENyx06-Distribution.pdf
                            archive of terms of use for the CHENyx06.gsb file
      - epsg                EPSG data file, taken from the proj.4 project
                            (see https://github.com/OSGeo/proj.4/blob/master/nad/epsg)
      - esri                ESRI data file, taken from the proj.4 project
                            (see https://github.com/OSGeo/proj.4/blob/master/nad/esri)
      - josm-epsg           customizations to the epsg file, used together with the epsg file
                            to generate data/projection/custom-epsg
                            
      - projection-reference-data.csv
                            reference data for projection tests
                            (see test/unit/org/openstreetmap/josm/data/projection/ProjectionRefTest.java)
      - projection-regression-test-data.csv
                            regression data for projection tests
                            (see test/unit/org/openstreetmap/josm/data/projection/ProjectionRegressionTest.java)
    - trans/*.lang          translation data for files that are not distributed, but used
                            by the server for localization of the services;
                            currently contains plugin descriptions in order to include translations
                            in the downloaded plugin list
  - images/                 images, which are not for distribution, but may be useful later (e.g. high
                            resolution and vector versions)
  - styles/                 files needed for map style maintenance
- README                    this file
- resources/                resource files that will be included in the JOSM jar file
  - data/                   data files that will be included in the JOSM jar file
    - fonts/                font files used for map rendering
    - gpx/                  different color gradients for gpx drawing
    - projection/           projection files
      - custom-epsg         list of projection definitions, auto-generated file created by ant task 'epsg'
    - security/*.pem        certificates that we like to accept for TLS connections, but are missing in the
                            default Java certificate store
    - validator/            data files used by the JOSM validator
      - *.cfg               files designed for the old tagchecker, still in use
      - *.mapcss            default validation rules for the MapCSS-based tagchecker
    - boundaries.osm        OSM file containing boundary data for the states of the earth, including
                            data for right and left-hand traffic
    - defaultpresets.xml    data file for the core tagging presets
    - help-browser.css      CSS file for the help sites (HTML content is downloaded from the website
                            on demand, but displayed inside the programm in a Java web browser component.)
    - *.lang                translation data
    - *.xsd                 xml schema files for validation of configuration files
  - images/                 images distributed with the JOSM binary
    - icons                 images for the Potlatch 2 style
    - presets               images for the main mappaint style and the internal presets
  - styles/                 map styles included in JOSM
- scripts/                  various scripts used by JOSM developers
  - BuildProjectionDefinitions.java
                            called from the ant build file to combine the files epsg and josm-epsg
                            to create the custom-epsg file for distribution
  - geticons.pl             tool to find all used icons and allows deleting unused icons
                            searches also for images with incompatible svg code
  - optimize-images         short script to decrease size of PNG images
  - since_xxx.py            developer tool to replace "@since xxx" in Javadoc by the upcoming revision number
  - SyncEditorLayerIndex.java
                            script to compare and analyse the differences of the editor layer index and the
                            JOSM imagery list (see https://josm.openstreetmap.de/wiki/ImageryCompare)
  - TagInfoExtract.java     extracts tag information for the taginfo project
- src/                      the source code of the application
- start.html                HTML page to run the applet version of JOSM
- test/                     automated software tests
    - data/                 resources used for some tests
    - functional/           functional tests (source code)
    - lib/                  libraries needed for (some of) the tests, including JUnit
    - performance/          performance tests (source code)
    - unit/                 unit tests (source code)
- tools/                    libraries, tools and configuration files that help in the development process
    - checkstyle/           libs and config files for checkstyle (automatically detects code style
                            problems in source code); can be launched as an ant target in build.xml
    - eclipse/              preconfigured Eclipse configuration files
    - ivy/                  Apache Ivy binary, configuration file, and downloaded dependencies 
    - jacocoant.jar         used to include coverage data into JUnit test reports
    - japicc/               used to generate a compatibility report between optimized jar and normal one
    - netbeans/             preconfigured Netbeans project
    - pmd/                  config files for PMD (source code analyzer, finds common programming flaws)
    - spotbugs/             libs and config files for spotbugs (automatically detects common bugs and potential
                            problems in source code); can be launched as an ant target in build.xml

Third party libraries
---------------------
There are some third party libraries which are directly included in the source code tree, in particular:

* jmapviewer: Java component to browse a TMS map
    src/org/openstreetmap/gui (svn external)
    -> https://josm.openstreetmap.de/osmsvn/applications/viewer/jmapviewer/
* Apache commons compress: Support for bzip2 compression when opening files
    -> https://github.com/apache/commons-compress
* Apache commons validator: Improved validator routines
    src/org/openstreetmap/josm/data/validation/routines
    -> http://commons.apache.org/proper/commons-validator
* SVG Salamander: Support for SVG image format
    -> https://github.com/blackears/svgSalamander
* Metadata Extractor: Read EXIF Metadata of photos
    -> https://github.com/drewnoakes/metadata-extractor
* Signpost: OAuth library
    -> https://github.com/mttkay/signpost
* MultiSplitPane: Small lib for GUI layout management
    src/org/openstreetmap/josm/gui/MultiSplitLayout.java, MultiSplitPane.java
    -> https://github.com/floscher/multi-split
    -> https://community.oracle.com/docs/DOC-983539
* swinghelper: Class CheckThreadViolationRepaintManager to find EDT violations
    src/org/openstreetmap/josm/gui/util/CheckThreadViolationRepaintManager.java
    -> https://github.com/floscher/swinghelper
* xz extractor
    -> https://tukaani.org/xz/java.html
* OpeningHoursParser (MIT license)
    -> https://github.com/simonpoole/OpeningHoursParser

mapillary's People

Contributors

cbeddow avatar don-vip avatar floscher avatar ghostfoxsledgehammer avatar gyllen avatar ireun avatar jpietri avatar knikel avatar kratico avatar miurahr avatar nickplesha avatar polyglotopenstreetmap avatar simon04 avatar sn6x avatar stoecker avatar tobias-o avatar tsmock avatar wiktorn avatar ybkuang avatar ygra avatar yudistrange avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

mapillary's Issues

Call for icons

I think it would be great, if we could have new icons. The current ones are based around the Mapillary logo with a small symbol indicating the functionality.

Perhaps the other way around would be better, a big symbol for the functionality and a small Mapillary logo or some other indication that the icon belongs to the Mapillary plugin (something like using the Mapillary-green as highlight-color or background-color).

The thing is, I'm not overly talented in icon design. So, I'd really appreciate if someone has suggestions for new icons or revised versions of the current icons.

New icons that we need:

  • Changeset dialog (currently the same one as for the history dialog is used)
  • Join mode (currently none)
  • Select mode (currently none)

Already existent icons that could be redesigned:

  • Main dialog that displays the images image
  • Filter dialog filter
  • History dialog history
  • Traffic sign icon (currently unused) signs

The preferred size is 24×24px, because they'll be used for the JOSM sidebar, but SVGs would be even better, in case we'd need different sizes in the future.

cc @mapillary: Does someone of you have ideas? Maybe you already have symbols for certain actions/functionality like changesets, joining sequences or selecting images that we could reuse. That would make them also more recognizable between the website and the plugin.

change URL for "view in Browser"

Please add possibility to change the URL via preferences for button "View in Browser". (or maybe change it hardcoded...)

The only Link i want in JOSM is to unblur Images/Signs etc. so i dont need to view the image in Browser (i can see it still in JOSM...) and then click here and click there and there...

Enable deeper zooming for image viewer / Download more detailed versions of 360° images

This is what zooming into one of my photos looks like in the mapillary.com/app website:
selection_645

This is as far as I can zoom in in the JOSM plugin:
selection_646

I can read the sign in the former but not the latter. It would be great if you could zoom in more in the image in JOSM.

Maybe this is the line to change?
https://github.com/JOSM/Mapillary/blob/master/src/org/openstreetmap/josm/plugins/mapillary/gui/MapillaryImageDisplay.java#L104

Unable to upload images to mapillary.com

I didn't get how to upload images to mapillary from JOSM...
I tried importing images from file menu, selecting a bunch of images does nothing.

I also imported images and correlated with success. I didn't get how can I move them to the mapillary layer.
I'm on JOSM 11993 and mapillary 1.5.3

Make JoinMode and SelectMode subclasses of MapMode

Currently JoinMode and SelectMode are completely custom built. Instead I'd like them to extend from MapMode, which is provided by JOSM-core. That would make them appear in the button-sidebar on the left below e.g. the select-mode for OSM data layers. This would be a more appropriate place for them instead of hiding in the window menu.

Here's the current inheritance hierarchy and the one I propose:
inheritance_hierarchy

Repainting issues with JOSM versions > 12128

I'm currently investigating a problem, that the Mapillary layer will only repaint when zooming/panning, but not when e.g. hovering a Mapillary image.

As far as I know, this only happens for JOSM versions > 12128 (tested with 12275 and 12415 and both v1.5.3 and v1.5.4 of the plugin).

So something changed in JOSM between 12128 and 12275, that causes this. Let's see where this comes from and if the plugin or JOSM needs fixing.

Edit: It breaks between 12148 and 12192.

"could not read from URL" messages are shown even for background jobs

As is, these messages are shown for images/detections being downloaded in the background and sequences shown on the map. For whatever reason a lot of these fail right now, which results in a large queue of unhelpful notifications that are a nuisance to click away.

Ideally the plugin would either not show these messages at all, since they cannot be acted upon and rather render this info into the map (or into the image). Alternatively, at least group them ("25 images could not be loaded") or throttle them.

Can't upload changes to mapillary

I can make changes (move and correct direction), see change sets, bun when push Send button, josm freeze for some time and nothing went after.
Use git version of addon.

When filtering by user, keystrokes should not be treated as global keyboard shortcuts

When you have the filter dialog open and type in a username, containing letters like S, A or W these letters are added to the text field, but also the global keyboard shortcuts of JOSM are fired.

The desired behaviour would be that the keystrokes are captured by the focused component (the TextField), but don't count as keyboard shortcuts (at least when neither Ctrl nor Alt is pressed simultaneously).

grafik

Mapillary layer opens every time JOSM is started

As pointed out by @srividyacb in https://github.com/floscher/josm-mapillary-plugin/issues/18#issuecomment-246100857 the mapillary layer is currently opened every time you start JOSM and add any layer (e.g. Bing, or OSM data layer).

The expected behaviour would be for the Mapillary layer to open only when you choose the layer in the background imagery menu or hit Shift+,.

I also noticed, that the Mapillary layer will appear above the Bing layer but below the OSM data layer.

Screencast showcasing the issue. After JOSM is started, the Bing layer is added and the Mapillary layer appears on top of the Bing layer

Add Colour picker

When adding colour tags (https://wiki.openstreetmap.org/wiki/Key:colour ), eg

  • building:facade:colour
  • building:colour
  • roof:colour

it would be very handy to get the exact hex color code easily from the Mapillary images.

One option would is to just copy the hex colour code to the clipboard and let user add the tag. Better, but more complex option would be to add the complete tag with the chosen colour value to the currently selected OSM object.

Traffic sign indicator not shown

Feature set mentions the plugin handles traffic signs. There is no visible sign of that. I looked up an image on the web GUI, checked it in JOSM. Icon same, and when I filter for signs there are zero images.

Give download modes more self-explanatory names

This is such an awesome plugin, great job!

The issue I have been having is that the picture layer does not update when the map is panned, and requires removing and readding the layer to refresh the data. Is this a known issue? What would be a good place to file a bug report?

cc @floscher

Document how to use the plugin

It would be great, if there would be more and up to date user documentation of the plugin (e.g. on the Wiki page).
Some things like keyboard shortcuts or the different dialogs should be explained somewhere or the users won't be able to (easily) find them.

v3/ objects API deprecated, causing errors

Screenshot here (Hungarian):

image

When the objects layer is activated, an error is returned. The v3/objects API is deprecated. In order to retrieve traffic signs, it needs to use https://a.mapillary.com/v3/map_features?layers=trafficsigns&client_id=... in order to retrieve these. I believe the same client ID will work.

Can someone make this update?

Add more traffic signs

Hi,
First of all, thanks so much for this plugin that I use on a weekly basis. It really allows a precise mapping in JOSM.

Would it be possible to add the wild animals traffic sign in the filter ?
I detailed this sign on the wiki: https://wiki.openstreetmap.org/wiki/Proposed_features/animal_crossing
I saw in your Trello that adding more generic traffic signs is on your list, so maybe it's already planned soon?

I run a side project (cf. https://github.com/overflorian/panneauxbiche) to map wild animals signs worldwide and your help would be much appreciated.

Regards

PS : I took the habit to add "mapillary=[mapillary_key]" on OSM objects thanks to this plugin. Is that something you do too?

Recognize custom EXIF-format used by Mapillary app

When importing photos taken with the Mapillary app, the latitude/longitude are saved inside the ImageDescription tag as MAPlatitude and MAPlongitude.

These tags should be recognized and when present these should be used instead of (or additionally to?) GPSLatitude/GPSLongitude to load the coordinates from and save them to.

(suggested by @kolesar-andras in May 2016)

Plug-in Mapillary: object layer fills the recognited object instead of only marking it

The detection works in its way.
But the problem is that the detector full-fills the mapillary pic with the result of the detection, avoiding the possibility of view the real detected object. If the object would be wrong recognized you would'nt be able to see it because you only watch the result of the recognition instead of the real object. You can see it in this screen capture. I have marked right and wrong behaviour. With the orange mark will be enough to mark the sign.

JOSM 12542
Windows 10

Mapillary plugin failing

The mapillary plugin is constantly failing with the following bug report:

{{{
URL:http://josm.openstreetmap.de/svn/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2016-07-11 23:04:49 +0200 (Mon, 11 Jul 2016)
Build-Date:2016-07-12 01:31:48
Revision:10526
Relative:URL: ^/trunk

Identification: JOSM/1.5 (10526 en) Mac OS X 10.11.6
Memory Usage: 444 MB / 910 MB (292 MB allocated, but free)
Java version: 1.8.0_101-b13, Oracle Corporation, Java HotSpot(TM) 64-Bit Server VM
VM arguments: [-Djava.security.policy=file:<java.home>/lib/security/javaws.policy, -DtrustProxy=true, -Djnlpx.home=<java.home>/bin, -Djava.security.manager, -Djnlpx.origFilenameArg=${HOME}/Library/Application Support/Oracle/Java/Deployment/cache/6.0/56/1ee8cfb8-56c770eb, -Djnlpx.remove=false, -Dsun.awt.warmup=true, -Djava.util.Arrays.useLegacyMergeSort=true, -Dmacosx.jnlpx.dock.name=JOSM, -Dmacosx.jnlpx.dock.icon=${HOME}/Library/Application Support/Oracle/Java/Deployment/cache/6.0/16/47ee53d0-41edb0af.icns, -Djnlp.application.href=https://josm.openstreetmap.de/download/josm.jnlp , -Djnlpx.jvm="<java.home>/bin/java", -Djnlpx.vmargs=LURqYXZhLnV0aWwuQXJyYXlzLnVzZUxlZ2FjeU1lcmdlU29ydD10cnVlAC1Eam5scC5hcHBsaWNhdGlvbi5ocmVmPWh0dHBzOi8vam9zbS5vcGVuc3RyZWV0bWFwLmRlL2Rvd25sb2FkL2pvc20uam5scCAA]
Dataset consistency test: No problems found

Plugins:
- FastDraw (32639)
- Mapillary (32639)
- RoadSigns (32584)
- apache-commons (32584)
- apache-http (32584)
- auto_tools (1468620578)
- buildings_tools (32639)
- colorscheme (32584)
- continuosDownload (53)
- ejml (32639)
- fieldpapers (v0.4.0)
- geotools (32584)
- josm-config (1449603193)
- jts (32539)
- opendata (32584)
- reltoolbox (32639)
- reverter (32584)
- scripting (30723)
- terracer (32426)
- todo (29154)
- turnlanes (32584)
- turnlanes-tagging (1468266519)
- turnrestrictions (32629)
- utilsplugin2 (32584)

Tagging presets:
- https://josm.openstreetmap.de/josmfile?page=Presets/LaneAttributes&zip=1
- https://josm.openstreetmap.de/josmfile?page=Presets/Quick-highways&zip=1

Map paint styles:
- https://josm.openstreetmap.de/josmfile?page=Styles/Coloured_buildings&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/Lane_and_Road_Attributes&zip=1
- https://raw.githubusercontent.com/Andygol/josm-styles/master/created_in_2015.mapcss

Last errors/warnings:
- W: java.io.IOException: Attribution is not loaded yet
- W: java.io.IOException: Attribution is not loaded yet
- W: java.io.IOException: Attribution is not loaded yet
- W: java.io.IOException: Attribution is not loaded yet
- W: java.io.IOException: Attribution is not loaded yet
- W: java.io.IOException: Attribution is not loaded yet
- W: java.io.IOException: Attribution is not loaded yet
- W: java.io.IOException: Attribution is not loaded yet
- E: javax.json.JsonException: I/O error while parsing JSON. Cause: javax.net.ssl.SSLException: SSL peer shut down incorrectly
- E: javax.json.JsonException: I/O error while parsing JSON. Cause: javax.net.ssl.SSLException: SSL peer shut down incorrectly

javax.json.JsonException: I/O error while parsing JSON
    at org.glassfish.json.JsonTokenizer.read(JsonTokenizer.java:444)
    at org.glassfish.json.JsonTokenizer.readNumberChar(JsonTokenizer.java:243)
    at org.glassfish.json.JsonTokenizer.readNumber(JsonTokenizer.java:272)
    at org.glassfish.json.JsonTokenizer.nextToken(JsonTokenizer.java:410)
    at org.glassfish.json.JsonParserImpl$ArrayContext.getNextEvent(JsonParserImpl.java:303)
    at org.glassfish.json.JsonParserImpl$StateIterator.next(JsonParserImpl.java:172)
    at org.glassfish.json.JsonParserImpl.next(JsonParserImpl.java:149)
    at org.glassfish.json.JsonReaderImpl.readArray(JsonReaderImpl.java:136)
    at org.glassfish.json.JsonReaderImpl.readArray(JsonReaderImpl.java:139)
    at org.glassfish.json.JsonReaderImpl.readObject(JsonReaderImpl.java:180)
    at org.glassfish.json.JsonReaderImpl.readArray(JsonReaderImpl.java:143)
    at org.glassfish.json.JsonReaderImpl.readObject(JsonReaderImpl.java:180)
    at org.glassfish.json.JsonReaderImpl.readObject(JsonReaderImpl.java:103)
    at org.openstreetmap.josm.plugins.mapillary.io.download.MapillarySequenceDownloadThread.run(MapillarySequenceDownloadThread.java:59)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: javax.net.ssl.SSLException: SSL peer shut down incorrectly
    at sun.security.ssl.InputRecord.readV3Record(InputRecord.java:596)
    at sun.security.ssl.InputRecord.read(InputRecord.java:532)
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
    at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:930)
    at sun.security.ssl.AppInputStream.read(AppInputStream.java:105)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
    at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
    at sun.net.www.http.ChunkedInputStream.fastRead(ChunkedInputStream.java:244)
    at sun.net.www.http.ChunkedInputStream.read(ChunkedInputStream.java:689)
    at java.io.FilterInputStream.read(FilterInputStream.java:133)
    at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:3336)
    at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284)
    at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)
    at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)
    at java.io.InputStreamReader.read(InputStreamReader.java:184)
    at java.io.BufferedReader.fill(BufferedReader.java:161)
    at java.io.BufferedReader.read1(BufferedReader.java:212)
    at java.io.BufferedReader.read(BufferedReader.java:286)
    at org.glassfish.json.JsonTokenizer.fillBuf(JsonTokenizer.java:473)
    at org.glassfish.json.JsonTokenizer.read(JsonTokenizer.java:434)
    ... 16 more
}}} 

Build problems on Windows

Today I tested, how well building this project on Windows works.
And I realized, that there are multiple problems preventing the build from passing.

First I had problems with the character encoding of the source code, the :compileJava task failed.
But even after setting the encoding for the compile tasks (fix not yet pushed to GitHub), there were multiple unit tests failing. Part of them also because of encoding issues. For example because of the umlaut Ä in this line (somehow I knew, when adding that line, that someday this character will point me at an encoding issue 😉):

assertEquals("mapillary_userÄ2!", profile.getUsername());

Other tests were failing, because a lockfile of the JCS cache existed, so the test could not read/write to/from the cache.

If there is somebody using Windows, who could help investigate the issue and test out new versions that try to fix this, it would be great if you could give it a try:

git clone https://github.com/JOSM/Mapillary.git
gradlew build

NPE while rotating MapillaryImage

I was testing version 5a3751f of the plugin with JOSM 10377. I clicked and dragged the image around while holding shift in order to turn the image, but while doing this, the following exception occured

java.lang.NullPointerException
    at org.openstreetmap.josm.plugins.mapillary.mode.SelectMode.mouseDragged(SelectMode.java:123)
    at java.awt.AWTEventMulticaster.mouseDragged(AWTEventMulticaster.java:320)
    at java.awt.AWTEventMulticaster.mouseDragged(AWTEventMulticaster.java:319)
    at java.awt.Component.processMouseMotionEvent(Component.java:6583)
    at javax.swing.JComponent.processMouseMotionEvent(JComponent.java:3342)
    at java.awt.Component.processEvent(Component.java:6304)
    at java.awt.Container.processEvent(Container.java:2236)
    at java.awt.Component.dispatchEventImpl(Component.java:4891)
    at java.awt.Container.dispatchEventImpl(Container.java:2294)
    at java.awt.Component.dispatchEvent(Component.java:4713)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4542)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
    at java.awt.Container.dispatchEventImpl(Container.java:2280)
    at java.awt.Window.dispatchEventImpl(Window.java:2750)
    at java.awt.Component.dispatchEvent(Component.java:4713)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
    at java.awt.EventQueue$4.run(EventQueue.java:731)
    at java.awt.EventQueue$4.run(EventQueue.java:729)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Edit: This always happens when you select an image, then press and hold shift, then click and drag not on the image, but somewhere else.

Enhancing traffic sign system

I've been trying to improve the traffic sign system, filtering maybe. There was an issue with the signs in different countries. In order to fix this, I'm using the mapping files in traffico repository (although I had to had at least one more), so I could translate among all the packages versions, as there are many images that contain old sign names.

I still have to check a couple of things so I merge it later.

Auto-correlate images without GPS using a provided GPX file (e.g. images from the app)

Basic information

  • Platform: Android 6.0.1
  • Version: 3.43
  • JOSM Version 11826
  • Mappilary Plugin Version 1.4.2

Steps to reproduce behavior

  1. Use new version Android 3.43 to generate a sequence. Perhaps IOS version of the capture app already uses a separate file for the gps coordinates.
  2. Use JOSM imports into a sequence with JOSM.
  3. Try to upload files.

Expected behavior

Use JOSM Mapillary plugin to upload images as a work around to https://github.com/mapillary/mapillary_issues/issues/2513

Actual behavior

The images do not have gps meta data so that they can be uploaded. I have attached a zip file that includes sequence of two files and the new .gpx meta data file. I can provide another file with more images if that will help.

Additional information

I may be able to use another JOSM plugin to add the gps coordinates back into the image files. I don't know if you need another process to handle these images. I am guessing that the Mapillary JOSM plugin is designed to create a sequence created by applications other than a Mapiillary phone app.

image

2017_04_08_13_06_27_878.zip

Plugin fails to load images

Since I recently updated JOSM (and thereby most likely the plugin), the sequences load and show up, but the images do not.

JOSM/1.5 (11926 en) Mac OS X 10.11.6
Memory Usage: 1416 MB / 3641 MB (334 MB allocated, but free)
Java version: 1.8.0_111-b14, Oracle Corporation, Java HotSpot(TM) 64-Bit Server VM
+ Mapillary (v1.5.1)

Once I mouse-over or click an image node, java throws an event as below. After working while having the mapillary layer on, JOSM freezes and needs to be killed.

java.awt.IllegalComponentStateException: component must be showing on the screen to determine its location
	at java.awt.Component.getLocationOnScreen_NoTreeLock(Component.java:2062)
	at java.awt.Component.getLocationOnScreen(Component.java:2036)
	at javax.swing.JPopupMenu.show(JPopupMenu.java:948)
	at org.openstreetmap.josm.plugins.mapillary.gui.imageinfo.ImageInfoHelpPopup.showPopup(ImageInfoHelpPopup.java:77)
	at org.openstreetmap.josm.plugins.mapillary.gui.MapillaryMainDialog.updateImage(MapillaryMainDialog.java:209)
	at org.openstreetmap.josm.plugins.mapillary.gui.MapillaryMainDialog.updateImage(MapillaryMainDialog.java:185)
	at org.openstreetmap.josm.plugins.mapillary.mode.SelectMode.mouseMoved(SelectMode.java:181)
	at java.awt.AWTEventMulticaster.mouseMoved(AWTEventMulticaster.java:330)

etc.

Tracing versions, the problem started when I upgraded to JOSM 11879 on Apr 10, before that I was running 11604 with mapillary working fine.

Pictures in the wrong place in JOSM

This picture on Mapillary looks at the right place on the map: https://www.mapillary.com/app/?focus=map&pKey=BE-9uFedYZxrbgIVWBVwCg&lat=48.794617310756166&lng=2.331230420550696&z=17&menu=false

However looking at the same location in JOSM, the same picture is located at this place where the surroundings are totally different : https://www.openstreetmap.org/#map=18/48.79348/2.33458

This is the same sequence about 50 pictures down the road, this is very confusing !

JOSM crashes every time a layer is opened

Getting this error everytime JOSM is opened.

{{{
URL:http://josm.openstreetmap.de/svn/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2016-08-11 21:54:24 +0200 (Thu, 11 Aug 2016)
Build-Date:2016-08-11 22:36:05
Revision:10786
Relative:URL: ^/trunk

Identification: JOSM/1.5 (10786 en) Mac OS X 10.11.5
Memory Usage: 419 MB / 910 MB (215 MB allocated, but free)
Java version: 1.8.0_101-b13, Oracle Corporation, Java HotSpot(TM) 64-Bit Server VM
VM arguments: [-Djava.library.path=${HOME}/Documents/Mac DMGs/josm-macosx 4/JOSM.app/Contents/MacOS, -DLibraryDirectory=${HOME}/Library, -DDocumentsDirectory=${HOME}/Documents, -DApplicationSupportDirectory=${HOME}/Library/Application Support, -DCachesDirectory=${HOME}/Library/Caches, -DSandboxEnabled=false, -Dapple.laf.useScreenMenuBar=true, -Dcom.apple.macos.use-file-dialog-packages=true, -Dcom.apple.macos.useScreenMenuBar=true, -Dcom.apple.mrj.application.apple.menu.about.name=JOSM, -Dcom.apple.smallTabs=true]
Dataset consistency test: No problems found

Plugins:
+ DirectDownload (32699)
+ FastDraw (32773)
+ Mapillary (32796)
+ PicLayer (32796)
+ RoadSigns (32796)
+ apache-commons (32699)
+ apache-http (32699)
+ auto_tools (1468620578)
+ buildings_tools (32796)
+ changesetID (1461665161)
+ ejml (32680)
+ geochat (32796)
+ geotools (32813)
+ imagery_offset_db (32796)
+ imageryadjust (32699)
+ jts (32699)
+ log4j (32699)
+ reverter (32796)
+ scripting (30730)
+ todo (29154)
+ tofix (267)
+ turnlanes (32796)
+ turnrestrictions (32796)
+ utilsplugin2 (32815)

Tagging presets:
+ https://josm.openstreetmap.de/josmfile?page=Presets/Quick-highways&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Presets/Quick-stops&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Presets/LaneAttributes&zip=1

Map paint styles:
- https://raw.githubusercontent.com/Andygol/josm-styles/master/created_in_2015.mapcss
- https://josm.openstreetmap.de/josmfile?page=Styles/Maxspeed&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Styles/Traffic_signs&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/Lane_and_Road_Attributes&zip=1

Last errors/warnings:
- W: Old style SideButton usage for action org.openstreetmap.josm.plugins.mapillary.gui.MapillaryChangesetDialog$SubmitAction@6df86819
- W: Old style SideButton usage for action org.openstreetmap.josm.plugins.tofix.TofixDialog$3@6f959d57
- W: Old style SideButton usage for action org.openstreetmap.josm.plugins.tofix.TofixDialog$4@16543db
- W: Old style SideButton usage for action org.openstreetmap.josm.plugins.tofix.TofixDialog$5@5129e6be
- W: Old style SideButton usage for action org.openstreetmap.josm.plugins.todo.TodoDialog$SelectAction@79d5541f
- W: Old style SideButton usage for action org.openstreetmap.josm.plugins.todo.TodoDialog$AddAction@34325fd2
- W: Old style SideButton usage for action org.openstreetmap.josm.plugins.todo.TodoDialog$PassAction@de99ea2
- W: Old style SideButton usage for action org.openstreetmap.josm.plugins.todo.TodoDialog$MarkAction@4fefb5c8
- E: The painter for layer org.openstreetmap.josm.gui.layer.OsmDataLayer@3d58ab53 was not registered.
- E: java.lang.reflect.InvocationTargetException. Cause: java.lang.IllegalArgumentException: org.openstreetmap.josm.gui.layer.OsmDataLayer@3d58ab53 is not managed by us.


=== REPORTED CRASH DATA ===
BugReportExceptionHandler$BugReporterThread#askForBugReport:
No data collected.

=== STACK TRACE ===
Thread: AWT-EventQueue-0 (17) of main
java.lang.reflect.InvocationTargetException
    at java.awt.EventQueue.invokeAndWait(EventQueue.java:1321)
    at java.awt.EventQueue.invokeAndWait(EventQueue.java:1296)
    at org.openstreetmap.josm.gui.PleaseWaitRunnable.doRealRun(PleaseWaitRunnable.java:98)
    at org.openstreetmap.josm.gui.PleaseWaitRunnable.run(PleaseWaitRunnable.java:141)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException: org.openstreetmap.josm.gui.layer.OsmDataLayer@3d58ab53 is not managed by us.
    at org.openstreetmap.josm.gui.layer.LayerManager.checkContainsLayer(LayerManager.java:313)
    at org.openstreetmap.josm.gui.layer.MainLayerManager.realSetActiveLayer(MainLayerManager.java:235)
    at org.openstreetmap.josm.gui.layer.MainLayerManager.lambda$setActiveLayer$0(MainLayerManager.java:230)
    at org.openstreetmap.josm.gui.util.GuiHelper.runInEDTAndWaitWithException(GuiHelper.java:138)
    at org.openstreetmap.josm.gui.layer.MainLayerManager.setActiveLayer(MainLayerManager.java:230)
    at org.openstreetmap.josm.gui.layer.MainLayerManager.realAddLayer(MainLayerManager.java:271)
    at org.openstreetmap.josm.gui.layer.LayerManager.lambda$addLayer$0(LayerManager.java:180)
    at org.openstreetmap.josm.gui.util.GuiHelper.runInEDTAndWaitWithException(GuiHelper.java:138)
    at org.openstreetmap.josm.gui.layer.LayerManager.addLayer(LayerManager.java:180)
    at org.openstreetmap.josm.actions.downloadtasks.DownloadOsmTask$AbstractInternalTask.addNewLayerIfRequired(DownloadOsmTask.java:263)
    at org.openstreetmap.josm.actions.downloadtasks.DownloadOsmTask$AbstractInternalTask.loadData(DownloadOsmTask.java:270)
    at org.openstreetmap.josm.actions.downloadtasks.DownloadOsmTask$DownloadTask.finish(DownloadOsmTask.java:352)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
    at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:184)
    at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:229)
    at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:227)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:227)
    at java.awt.Dialog.show(Dialog.java:1084)
    at java.awt.Component.show(Component.java:1671)
    at java.awt.Component.setVisible(Component.java:1623)
    at java.awt.Window.setVisible(Window.java:1014)
    at java.awt.Dialog.setVisible(Dialog.java:1005)
    at org.openstreetmap.josm.gui.progress.PleaseWaitProgressMonitor.lambda$doBeginTask$2(PleaseWaitProgressMonitor.java:186)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

=== RUNNING THREADS ===
Thread: Keep-Alive-Timer (48) of system
java.lang.Thread.sleep(Native Method)
sun.net.www.http.KeepAliveCache.run(KeepAliveCache.java:172)
java.lang.Thread.run(Thread.java:745)

Thread: message-notifier-0 (38) of main
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
java.lang.Thread.run(Thread.java:745)

Thread: RemoteControl HTTPS Server (36) of main
java.net.PlainSocketImpl.socketAccept(Native Method)
java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:409)
java.net.ServerSocket.implAccept(ServerSocket.java:545)
sun.security.ssl.SSLServerSocketImpl.accept(SSLServerSocketImpl.java:348)
org.openstreetmap.josm.io.remotecontrol.RemoteControlHttpsServer.run(RemoteControlHttpsServer.java:406)

Thread: RemoteControl HTTP Server (34) of main
java.net.PlainSocketImpl.socketAccept(Native Method)
java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:409)
java.net.ServerSocket.implAccept(ServerSocket.java:545)
java.net.ServerSocket.accept(ServerSocket.java:513)
org.openstreetmap.josm.io.remotecontrol.RemoteControlHttpServer.run(RemoteControlHttpServer.java:103)

Thread: AppKit Thread (10) of system

Thread: DestroyJavaVM (39) of main

Thread: Java2D Queue Flusher (12) of system
java.lang.Object.wait(Native Method)
sun.java2d.opengl.OGLRenderQueue$QueueFlusher.run(OGLRenderQueue.java:203)

Thread: Timer-1 (40) of main
java.lang.Object.wait(Native Method)
java.util.TimerThread.mainLoop(Timer.java:552)
java.util.TimerThread.run(Timer.java:505)

Thread: Timer-2 (44) of main
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:502)
java.util.TimerThread.mainLoop(Timer.java:526)
java.util.TimerThread.run(Timer.java:505)

Thread: File Watcher (9) of main
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:492)
java.util.concurrent.LinkedBlockingDeque.take(LinkedBlockingDeque.java:680)
sun.nio.fs.AbstractWatchService.take(AbstractWatchService.java:118)
org.openstreetmap.josm.io.FileWatcher.processEvents(FileWatcher.java:114)
org.openstreetmap.josm.io.FileWatcher$$Lambda$1/159413332.run(Unknown Source)
java.lang.Thread.run(Thread.java:745)

Thread: Signal Dispatcher (4) of system

Thread: Finalizer (3) of system
java.lang.Object.wait(Native Method)
java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)

Thread: Timer-0 (32) of main
java.lang.Object.wait(Native Method)
java.util.TimerThread.mainLoop(Timer.java:552)
java.util.TimerThread.run(Timer.java:505)

Thread: RemoteControl HTTP Server (35) of main
java.net.PlainSocketImpl.socketAccept(Native Method)
java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:409)
java.net.ServerSocket.implAccept(ServerSocket.java:545)
java.net.ServerSocket.accept(ServerSocket.java:513)
org.openstreetmap.josm.io.remotecontrol.RemoteControlHttpServer.run(RemoteControlHttpServer.java:103)

Thread: main-worker-0 (43) of main
java.net.SocketInputStream.socketRead0(Native Method)
java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
java.net.SocketInputStream.read(SocketInputStream.java:170)
java.net.SocketInputStream.read(SocketInputStream.java:141)
java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
java.io.BufferedInputStream.read(BufferedInputStream.java:345)
sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:704)
sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:647)
sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1536)
sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)
java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
geochat.JsonQueryUtil.query(JsonQueryUtil.java:36)
geochat.JsonQueryUtil.doRealRun(JsonQueryUtil.java:78)
geochat.JsonQueryUtil.run(JsonQueryUtil.java:97)
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
java.util.concurrent.FutureTask.run(FutureTask.java:266)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
java.lang.Thread.run(Thread.java:745)

Thread: Map Status Collector (45) of main
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:502)
java.awt.EventQueue.invokeAndWait(EventQueue.java:1315)
java.awt.EventQueue.invokeAndWait(EventQueue.java:1296)
org.openstreetmap.josm.gui.MapStatus$Collector.run(MapStatus.java:384)
java.lang.Thread.run(Thread.java:745)

Thread: TimerQueue (19) of system
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
java.util.concurrent.DelayQueue.take(DelayQueue.java:211)
javax.swing.TimerQueue.run(TimerQueue.java:174)
java.lang.Thread.run(Thread.java:745)

Thread: WeakCollectionCleaner (31) of main
java.lang.Object.wait(Native Method)
java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
org.geotools.util.WeakCollectionCleaner.run(WeakCollectionCleaner.java:77)

Thread: AWT-Shutdown (16) of system
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:502)
sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:295)
java.lang.Thread.run(Thread.java:745)

Thread: AWT-EventQueue-0 (17) of main
Stacktrace see above.

Thread: Java2D Disposer (13) of system
java.lang.Object.wait(Native Method)
java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
sun.java2d.Disposer.run(Disposer.java:148)
java.lang.Thread.run(Thread.java:745)

Thread: RemoteControl HTTPS Server (37) of main
java.net.PlainSocketImpl.socketAccept(Native Method)
java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:409)
java.net.ServerSocket.implAccept(ServerSocket.java:545)
sun.security.ssl.SSLServerSocketImpl.accept(SSLServerSocketImpl.java:348)
org.openstreetmap.josm.io.remotecontrol.RemoteControlHttpsServer.run(RemoteControlHttpsServer.java:406)

Thread: GT authority factory disposer (29) of main
java.lang.Object.wait(Native Method)
java.util.TimerThread.mainLoop(Timer.java:552)
java.util.TimerThread.run(Timer.java:505)

Thread: styled-map-renderer-0 (51) of main
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.ForkJoinPool.awaitWork(ForkJoinPool.java:1824)
java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1693)
java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)

Thread: Reference Handler (2) of system
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:502)
java.lang.ref.Reference.tryHandlePending(Reference.java:191)
java.lang.ref.Reference$ReferenceHandler.run(Reference.java:153)

Thread: Thread-9 (49) of main
java.lang.Thread.sleep(Native Method)
geochat.ChatServerConnection$LogRequest.run(ChatServerConnection.java:333)
java.lang.Thread.run(Thread.java:745)
}}}

Add a Mapillary tag to an object

Hi,
I suggest you add a button to add a "mapillary=*" tag to an object.

Use case:

  1. load OSM data and display the Mapillary layer
  2. Select an OSM object. Its attributes are then displayed in the "attributes" window
  3. Select a Mapillary picture. Its thumbnail is then displayed in the "mapillary picture" window
  4. Click on "Add the tag" button in the Mapillary window
  5. The Mapillary tag is added to the OSM object with its reference

Example :

  1. Load data in JOSM
  2. Select the node https://www.openstreetmap.org/node/3250355388
  3. Select the picture https://www.mapillary.com/app/?focus=photo&pKey=JeKD581InP4VzrvRzk2SPA
  4. Click on the button "add the tag"
  5. Here you go ! The "mapillary=JeKD581InP4VzrvRzk2SPA" tag is added to the node

This would be way much easier to add a Mapillary tags with this solution.
Nowadays I click on "view on the website", copy the part of the URL in my browser, close the tab, come back to JOSM, create a new "Mapillary" tag, paste the reference number.
It's such a pain when you tag dozens of pictures as I do.

There is currently about 6000 objects tagged with this tag and I am sure such a solution could boost it much more.

This tag is now essential on the projects I currently run. I have to PROVE that the data on-site is the one I created. The picture is that proof.

Check out for example the map I made of the brand new recycling containers in Paris
Every container you select displays a Mapillary picture of it.
I explain my project in a blog post (sorry only in French).

Again, you already know it guys: I am a big fan of your plug-in and use it almost every day. Keep going !
Your friend from Paris, Florian

Mapillary image moving

Hey, I've noticed that, even though the changeset system is implemented, MapillaryImages are not moved because of SelectMode implementation.
Is there any reason for this or should we just enable it?

Deadlock in unit tests

One unit test is hanging:
https://josm.openstreetmap.de/jenkins/job/JOSM-Plugins/jdk=JDK8/1011/console

test:
     [echo] Running unit tests with JUnit
[jacoco:coverage] Enhancing junit with coverage
    [junit] Running org.openstreetmap.josm.plugins.mapillary.AbstractTest
    [junit] Tests run: 1, Failures: 0, Errors: 0, Skipped: 1, Time elapsed: 0.162 sec
    [junit] Running org.openstreetmap.josm.plugins.mapillary.ImportTest
    [junit] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.559 sec
    [junit] Running org.openstreetmap.josm.plugins.mapillary.MapillaryAbstractImageTest

It kills our Jenkins server. It happened two times in two days, can you please look into it?

Failing unit tests

We have 19 unit tests failing:

https://josm.openstreetmap.de/jenkins/job/Java-EarlyAccess-JOSM-Plugins/79/jdk=JDK12/testReport/

All with the same stacktrace:

junit.framework.AssertionFailedError: modifiers
	at org.openstreetmap.josm.plugins.mapillary.utils.TestUtil.getAccessibleField(TestUtil.java:40)
	at org.openstreetmap.josm.plugins.mapillary.io.download.SequenceDownloadRunnableTest.setUp(SequenceDownloadRunnableTest.java:39)
	at org.openstreetmap.josm.testutils.JOSMTestRules$TimeoutThread.run(JOSMTestRules.java:700)

Add mapillary tag hidden

I wanted to add Mapillary tags to some bus stops. I had to open yet another Window pane (It's already crowded on that right side of the screen), then press a button. Is there an easier way to do this?

An extra button near the picture itself? A shortcut key?

Jo

Test failures due to signer information mismatch

The tests for the Mapillary plugin are failing with following exception for multiple classes.
class "org.openstreetmap.josm.tools.MemoryManagerTest"'s signer information does not match signer information of other classes in the same package

How to reproduce:
./gradlew test

Time-filter: don't use older than

imho it should be better to use a time range like

show from [date in past] to [today]

then you can exlude newest to.

This a little bit trickier: possibility to exclude a range (sometimes you want to exclude all pictures from a highway-construction)

Pre-fetching doesn't seem to work

Pre-fetching mapillary images doesn't seem to work:

Reproduce with the following steps:

  1. Start JOSM using the terminal, something like java -Xmx6G -jar josm-latest.jar
  2. Check the settings:
    • Download mode: areas with downloaded OSM-data
    • Number of images to be pre-fetched: 10
    • [X] Enable experimental beta-features
  3. Download OSM data where we have Mapillary coverage
  4. Activate Mapillary imagery using: Imagery -> Mapillary
  5. In the terminal you see that a lot of images are being downloaded. That's good.
  6. Open the terminal besides JOSM (maybe press Enter a few times to better see new lines coming in)
  7. In the image viewer click "Next picture"
  8. Look at the key of this new picture in the "Image info" view and compare it to the just downloaded URL in the terminal. They are the same. :-( To me it seems this image was downloaded twice.

Additional oddities:

  • (Optional step 9) If we hover the next image of the sequence on the map, only the low-resolution version is displayed, although we already pre-fetched the high-resolution version. Displaying the high-resolution image by hovering only works, if the high-resolution image was shown before by clicking "Next picture" (not by hovering only).
  • During the initial pre-fetching phase we were downloading both the low- and high-resolution images. Couldn't we skip the low- resolution images, since we're going to get the high-resolution image anyway?

"view on mapillary" in JOSM-Tag-Editor missing

iirc there was 10 days ago or so in Josm the possibility to mark the mapillary-tag in Tag-editor for "view on mapillary" similar to "goto OSM-Wiki" or "view on taginfo".

This functionality is gone. Have tried older JOSM-Version and there its gone too, so i think it was on the mapillary-plugin.

3d viewing support for spherical/360°/omni photos

It would be great if the plugin can control (pan, zoom, etc.) and display omni photos correctly?

image

In JOSM, when using these photos, I end-up viewing the photo in the Mapillary website so I could control the view of the image.

Please remove protected branch feature

Hello,

The master branch uses protected branch feature which makes it impossible to commit to the branch from the SVN reposity. As The I18n update infrastructure does use this setup and I18n update is no longer possible with Mapillary.

But on of the requirements of the automatic I18n translation is that updates can be done this way. When this is no longer possible Mapillary has no longer the right to use that infrastructure.

Please change the settings, so it's again possible to commit the i18n stuff in data via the SVN interface.

Survey: Keyboard shortcuts change

For the next minor release v1.6.0 I'm planning to rewrite the map modes (see #21).
While doing this, I'd also like to change some of the keyboard shortcuts. My goal is syncing them as much as possible with the ones of the org.openstreetmap.josm.actions.mapmode.SelectAction (the select mode for OSM data in JOSM core).

Below is my proposal on how these would change, what do you think about this?

MeaningCurrent shortcutProposed shortcutShortcut in SelectAction of JOSM core
SelectClickClickClick
MoveDragDragDrag
Add to selectionCtrl+clickShift+clickShift+click
Toggle selectionCtrl+clickCtrl+click
RotateShift+dragCtrl+Shift+dragCtrl+Shift+drag
Select the whole sequenceDoubleclickDoubleclick
Join two sequencesC(C is shortcut for joining/Combining ways)

If you have an opinion on these changes, please share it here, so I can take it into account.

Also, feedback on the other keyboard shortcuts is welcome:

  • Ctrl+, opens the MapillaryLayer or toggles it as the active layer if already existent
  • Ctrl+. downloads the sequences in currently visible area regardless of download mode
  • Do you have a suggestion for a keyboard shortcut to toggle the MapObjectLayer?

cc @peterneubauer @mapillary @PolyglotOpenstreetmap @nokutu
cc @grinapo @dex2000 @polarbearing @govvin @overflorian @drkludge

Thanks in advance for your input!

Improve upload experience

While images are uploaded the progress should be shown.

Maybe change placement of "Upload images" button, maybe bring changeset view and uploading together?!

Depending on what exactly caused #54, either fix a possible bug that disabled the upload action or improve UI to avoid this from happening.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.