JOSM/Plugins/Mapillary/GSoC 2020
Mapillary plugin will be developed as part of Google Summer of Code 2020 [1]. On this page the progress of this project will be documented.
Summary
Mapillary plugin is used to extract street-level imagery for better editing in JOSM. Currently the basic implementation of the plugin is complete with a few bugs, but still there's lot of room for improvements. The main idea of this project is to keep the plugin bug free and to allow better editing of both OSM data and Mapillary images and to make the plugin easier to use
Timeline
Community Bonding
May 5th — May 31st
I'm learning more about Mapillary API and existing plugin. I'll begin the coding phase by fixing error which occurs while undoing deletion of images.
Coding Phase 1
June 1st — June 7th
This week I've trying to remove ArrayIndexOutofBounds when undoing deletion of images. This was mainly because the images were not being sorted properly in the plugin.
- Re implement
compareTo
inMapillaryAbstractImage
to use image index for sorting // d174c00. - Re implement
execute
inCommandDelete
to use correct index of images when deleting images // e6f9b04. - Write Unit tests for
MapillaryAbstractImage
andCommandDelete
// c0866c4 3d65b3b. - Modify
MapillaryImportedImage
to support null value for image file // 5bd16af.
(all changes made to the repository this week)
Next week I'll try to add a download panel for viewing progress of Images being downloaded and possibly some functionality for pausing and canceling downloads.
June 8th — June 21st
This week I'm trying to create a download panel and I've been exploring JOSM core to see if there are existing features I can use.
- Fix Mapillary layer background hash, option to add/remove
DataSource
// 8c4f26b - Create class
DownloadProgressMonitor
, stores download info and displays download progress // c1298e8. - Create class
DownloadTableModel
, stores list of downloads and table data // d136720. - Create class
MapillaryDownloadDialog
, displays table with list of downloads and changeset submit button // a247b31. - Modify
BoundsDownloadRunnable
to get download progress usingProgressMonitor
// a56524c.
Basic structure of panel is complete with download table, submit changeset button and downloads info.
Next week I'll add pause/resume/cancel logic for downloads.
June 22th — June 28th
This week I'm trying to add cancel/pause/resume option for single downloads, delete changeset panel, fix errors that might arise after deletion of MapillaryLayer.
- Modify
MapillarySquareDownloadRunnable
to support pause,cancel and resume/redownload // dcad888. - Modify
MapillaryDownloader
to get download info and support rejected/canceled download's hash removal // fcd4f4f.
First Evaluation
- Add empty shortcuts for all toggle dialogs // a4d3290.
- Add restart button, icons for restart, cancel, clear buttons and download panel. // bda3131.
Coding Phase 2
July 4th — July 12th
This week I'm creating separate MapMode for editing MapillaryImages.
- Add empty shortcuts for undo/redo actions in
History dialog
// bc44463. - Create class
EditMode
as a mapmode forMapillary layer
to edit images and sequences // 1288de5. - Remove editing options from
SelectMode
// [2]1288de5. - Create class
MapillaryEditAction
to toggle betweenSelectMode
andEditMode
// 1288de5.
July 13th — July 19th
This week I'm Creating support for changeset of type deletion
and Editing options in Changeset Dialog
- Create class
SubmitLocationChangesetAction
for uploading changeset of typedeletion
. //1288de5 - Create class
DeleteImageAction
used to mark Images asdeleted
. // 1288de5 - Create class
DeleteImageAction
used to mark Whole sequence asdeleted
. // 1288de5 - Add option for editing image compass angle, marking sequence/images as deleted, making all images face each other in a sequence in changeset dialog. // 1288de5
July 20th — July 26th
This week I'll be editing MapillaryLayer
to add GUI to show which images have been deleted.
- Add new markers for deleted images to be shown in
MapillaryLayer
. // 259e039 259e039c - Paint different image markers for deleted images in
MapillaryLayer
. // 259e039 - Exclude deleted images when selecting images in
EditMode
. // 259e039
Second Evaluation
- Add option to review images before uploading them. // 294c063 294c063
- Force review of images before uploading images and changesets. // 294c063 662fec8
- Remove changeset submit button from Download Dialog. // 78a1945
Coding Phase 3
August 1st — August 9th
- Create
AbstractImageViewer
for common methods for both normal and panoramic viewers. // fdea3c9 - Create
ZoomPanMouseListener
for listening zoom and drag commands from mouse. // fdea3c9 - Create
ImageVieweUtil
to help with drawing images. // fdea3c91
August 10th — August 16th
- Create
MapillaryImageViewer
to view normal Images. // fdea3c91 - Create
PanoramicImageViewer
to view 360 Degree panoramic images. // 820f1fd
August 17th — August 23rd
- Draw image detections. // 820f1fd 820f1fd
- Create faster method for mapping panoramic images using Image's
Databuffer
to modify color instead ofgetRGB
andsetRGB
. // 820f1fd - Use predefined buttons for zooming and dragging. // 7396b25
Final Evaluation
- Use dedicated
ImageViewers
for viewing normal and panoramic images. // 16d38ee - Update direction indicator using point of view of panoramic images. // 5fe86bf
- Recalculate View area when new images are set. // 6b30bae
Project Ideas
This list contains ideas for improvements over the course of the GSoC.
If you have ideas not on this list that you would like to see implemented, you are very welcome to suggest them On the Talk Page.
Bugfixing
- Fix ArrayIndex
errorwhen undeleting a large sequence.
Existing Feartures
- Improve Viewing of 360 degree images inside JOSM.
- Enhance editing of images and sequences.
New Features
- Get colour code from Mapillary images and use them directly into OSM tags.
- Add download panel to view and handle downloads.