Show route/track on OSM map (GPX or KML)
-
- Phoca Member
- Posts: 47
- Joined: 18 Sep 2011, 16:17
Show route/track on OSM map (GPX or KML)
Hi Jan,
I'm replacing a wordpress site where I have an OSM plugin that enables me to display a map with a gpx tracklog overlaid in an article.
I've been trying to find out how to do this with PhocaMaps using an OSM base map on the new Joomla3 replacement site (I don't wish to use google maps) but I can't find how to do this.
Any clues please?
PS you can't search for KML or GPX in this forum because it says search terms have to be 4 chars
RogerCO
I'm replacing a wordpress site where I have an OSM plugin that enables me to display a map with a gpx tracklog overlaid in an article.
I've been trying to find out how to do this with PhocaMaps using an OSM base map on the new Joomla3 replacement site (I don't wish to use google maps) but I can't find how to do this.
Any clues please?
PS you can't search for KML or GPX in this forum because it says search terms have to be 4 chars
RogerCO
Tags:
- Jan
- Phoca Hero
- Posts: 48299
- Joined: 10 Nov 2007, 18:23
- Location: Czech Republic
- Contact:
Re: Show route/track on OSM map (GPX or KML)
Hi, unfortunately, the KML feature only works with Google Maps in Phoca Maps. It is only Google Maps parameter.
Jan
Jan
If you find Phoca extensions useful, please support the project
-
- Phoca Member
- Posts: 47
- Joined: 18 Sep 2011, 16:17
Re: Show route/track on OSM map (GPX or KML)
Ah, thanks Jan.
Looking in the source code I see (aside from an awful lot of commented out, presumably legacy, blocks ) that you already have most of the required pieces in place.
You have leaflet.js loaded, and also the leaflet-omnivore plugin which will display both kml and gpx overlays (although I'd prefer to use the leaflet-gpx plugin which I think has some more interesting additional output options).
Indeed on a quick test a one line addition in the relevant helper file (phocamapsosm.php) displays a gpx file ok (hardcoded to the file location)
So 'all' that is needed is to make use of the map kml parameter to hold the gpx filename and probably add a separate function in the helper to add the gpx specifier to $this->output rather than embed it in the renderMap() function.
Probably also add a separate tab and fields in the form for the admin phocamapsmap view for OSM details matching the google specific one with a view to perhaps switching to leaflet-gpx and enabling fitting the map to the selected track, adding some additional info from the gpx (eg date recorded, distance, av speed, elevation gain/loss) and enabling multiple tracks on one map (all of which I would ideally like to have)
I'm guessing that you are actively busy on other components at present (you have a lot on your plate!) so if you are unlikely to get to this fairly soon I'll go ahead and produce a version using leaflet-omnivore for gpx (and maybe kml) on osm for my own us and pass it back to you if you wish.
Having done that I'd add in the use of leaflet-gpx (and possibly leaflet-kml) instead of leaflet-omnivore for displaying tracks on OSM maps.
Roger
Looking in the source code I see (aside from an awful lot of commented out, presumably legacy, blocks ) that you already have most of the required pieces in place.
You have leaflet.js loaded, and also the leaflet-omnivore plugin which will display both kml and gpx overlays (although I'd prefer to use the leaflet-gpx plugin which I think has some more interesting additional output options).
Indeed on a quick test a one line addition in the relevant helper file (phocamapsosm.php) displays a gpx file ok (hardcoded to the file location)
So 'all' that is needed is to make use of the map kml parameter to hold the gpx filename and probably add a separate function in the helper to add the gpx specifier to $this->output rather than embed it in the renderMap() function.
Probably also add a separate tab and fields in the form for the admin phocamapsmap view for OSM details matching the google specific one with a view to perhaps switching to leaflet-gpx and enabling fitting the map to the selected track, adding some additional info from the gpx (eg date recorded, distance, av speed, elevation gain/loss) and enabling multiple tracks on one map (all of which I would ideally like to have)
I'm guessing that you are actively busy on other components at present (you have a lot on your plate!) so if you are unlikely to get to this fairly soon I'll go ahead and produce a version using leaflet-omnivore for gpx (and maybe kml) on osm for my own us and pass it back to you if you wish.
Having done that I'd add in the use of leaflet-gpx (and possibly leaflet-kml) instead of leaflet-omnivore for displaying tracks on OSM maps.
Roger
- Jan
- Phoca Hero
- Posts: 48299
- Joined: 10 Nov 2007, 18:23
- Location: Czech Republic
- Contact:
Re: Show route/track on OSM map (GPX or KML)
Hi, yes, unfortunately, I am overloaded for now, but yes, if you can modify it, it would be great.
KML File path is stored in map table (`#__phocamaps_map`) under:
`kmlfile` varchar(255) NOT NULL default '',
So you can add another columns like:
`kmlfile_osm` varchar(255) NOT NULL default '',
`gpxfile_osm` varchar(255) NOT NULL default '',
This means, editing following file:
administrator\components\com_phocamaps\install\sql\mysql\install.utf8.sql (adding columns to map table)
and adding upgrade file for next version, e.g.:
administrator\components\com_phocamaps\update\sql\mysql\3.0.12.sql
Edited XML will be:
administrator\components\com_phocamaps\models\forms\phocamapsmap.xml
(kmlfile parameter can be used as source for both to copy it)
administrator\components\com_phocamaps\views\phocamapsmap\tmpl\edit.php can be edited as following:
add:
So adding this plus language string (COM_PHOCAMAPS_ADVANCED_SETTINGS_OSM_MAPS) will add the new form fields which will store the values to database and this can be used then when rendering the map.
etc.
...
Jan
KML File path is stored in map table (`#__phocamaps_map`) under:
`kmlfile` varchar(255) NOT NULL default '',
So you can add another columns like:
`kmlfile_osm` varchar(255) NOT NULL default '',
`gpxfile_osm` varchar(255) NOT NULL default '',
This means, editing following file:
administrator\components\com_phocamaps\install\sql\mysql\install.utf8.sql (adding columns to map table)
Code: Select all
`kmlfile_osm` varchar(255) NOT NULL default '',
`gpxfile_osm` varchar(255) NOT NULL default '',
administrator\components\com_phocamaps\update\sql\mysql\3.0.12.sql
Code: Select all
ALTER TABLE `#__phocamaps_map` ADD COLUMN `kmlfile_osm` varchar(255) NOT NULL default '';
ALTER TABLE `#__phocamaps_map` ADD COLUMN `gpxfile_osm` varchar(255) NOT NULL default '';
administrator\components\com_phocamaps\models\forms\phocamapsmap.xml
(kmlfile parameter can be used as source for both to copy it)
administrator\components\com_phocamaps\views\phocamapsmap\tmpl\edit.php can be edited as following:
add:
Code: Select all
'advanced_osm' => JText::_($this->t['l'].'_ADVANCED_SETTINGS_OSM_MAPS'),
Code: Select all
echo $r->startTab('advanced', $tabs['advanced']);
$formArray = array ('kmlfile_osm', 'gpxfile_osm');
echo $r->group($this->form, $formArray);
echo $r->endTab();
etc.
...
Jan
If you find Phoca extensions useful, please support the project
-
- Phoca Member
- Posts: 47
- Joined: 18 Sep 2011, 16:17
Re: Show route/track on OSM map (GPX or KML)
OK, I have a basic version working now using the google kml parameter. I'll modify as you suggest to add separate parameters for osmkml and osmgpx.
The plugin of course also needs a small modification to render the track if it is enabled.
I'd like to be able to store the track files in a different folder rather than defaulting to /phocamapskml (eg in /phocadownload so I can easily upload tracks from the frontend) so if necessary I'll add the ability to specify a path for the file to override the default.
Do you use github? - if so message me the github address and I'll do a proper branch from there (I'm rogercreagh on github), otherwise let me know how best to get the changes to you.
The plugin of course also needs a small modification to render the track if it is enabled.
I'd like to be able to store the track files in a different folder rather than defaulting to /phocamapskml (eg in /phocadownload so I can easily upload tracks from the frontend) so if necessary I'll add the ability to specify a path for the file to override the default.
Do you use github? - if so message me the github address and I'll do a proper branch from there (I'm rogercreagh on github), otherwise let me know how best to get the changes to you.
- Jan
- Phoca Hero
- Posts: 48299
- Joined: 10 Nov 2007, 18:23
- Location: Czech Republic
- Contact:
Re: Show route/track on OSM map (GPX or KML)
Hi, you can find the projects here:
https://github.com/PhocaCz/PhocaMaps
https://github.com/PhocaCz/PhocaMapsPlugin
As I have specific script to build the component, I can take the modified source and build it on my server as new version (I don't use merge or similar functions as the component is built with specific script but that is no problem I can download your modifications and merge on my server)
/phocamapskml - then maybe the easiest way will be creating new parameter in options for storing the kml/gpx files - the folder path where the phocamapskml will be set as default (so the backward compatibility will be not broken)
Jan
https://github.com/PhocaCz/PhocaMaps
https://github.com/PhocaCz/PhocaMapsPlugin
As I have specific script to build the component, I can take the modified source and build it on my server as new version (I don't use merge or similar functions as the component is built with specific script but that is no problem I can download your modifications and merge on my server)
/phocamapskml - then maybe the easiest way will be creating new parameter in options for storing the kml/gpx files - the folder path where the phocamapskml will be set as default (so the backward compatibility will be not broken)
Jan
If you find Phoca extensions useful, please support the project
-
- Phoca Member
- Posts: 47
- Joined: 18 Sep 2011, 16:17
Re: Show route/track on OSM map (GPX or KML)
OK, here you go:
https://github.com/rogercreagh/PhocaMaps
See https://github.com/rogercreagh/PhocaMap ... s3.0.12.md for a summary of the changes
There are three new fields in the maps table - I've allowed multiple gpx and kml files to be specified for a map - they are entered as a comma separated list in the OSM Advanced tab on the map settings. You can add line breaks between them to make the textarea more readable. Colours for tracks are specified in a separate textarea in the same order as the files. Again comma separated with optional line feeds for legibility.
There is also a fit map to first track option which overrides any coordinates and zoom level set on the general tab for the map.
If no path (relative to site root) is specified with the gpx/kml file then it defaults to /phocamapskml folder, but if you specify a path then that will be used instead. I haven't added an option to set a default folder for now.
I'll do the plugin tomorrow.
For now I'll be using this version on my migrated ex-wordpress site. Since I am not using Google maps at all I'm inclined when I next fancy a side project to produce an OSM only version with some further enhancements and tidying up - and making it 3.10/4.0 compatible - which I think will be a fair chunk of work and it might digress significantly from the existing code base - if I do get round to it you'd be welcome to take it back as a PhocaOSM component if you wish. (I'll develop it separately if I do)
RogerCO
https://github.com/rogercreagh/PhocaMaps
See https://github.com/rogercreagh/PhocaMap ... s3.0.12.md for a summary of the changes
There are three new fields in the maps table - I've allowed multiple gpx and kml files to be specified for a map - they are entered as a comma separated list in the OSM Advanced tab on the map settings. You can add line breaks between them to make the textarea more readable. Colours for tracks are specified in a separate textarea in the same order as the files. Again comma separated with optional line feeds for legibility.
There is also a fit map to first track option which overrides any coordinates and zoom level set on the general tab for the map.
If no path (relative to site root) is specified with the gpx/kml file then it defaults to /phocamapskml folder, but if you specify a path then that will be used instead. I haven't added an option to set a default folder for now.
I'll do the plugin tomorrow.
For now I'll be using this version on my migrated ex-wordpress site. Since I am not using Google maps at all I'm inclined when I next fancy a side project to produce an OSM only version with some further enhancements and tidying up - and making it 3.10/4.0 compatible - which I think will be a fair chunk of work and it might digress significantly from the existing code base - if I do get round to it you'd be welcome to take it back as a PhocaOSM component if you wish. (I'll develop it separately if I do)
RogerCO
- Jan
- Phoca Hero
- Posts: 48299
- Joined: 10 Nov 2007, 18:23
- Location: Czech Republic
- Contact:
Re: Show route/track on OSM map (GPX or KML)
Hi, please let me know when you ready with the plugin.
I will try to merge the changes and release 3.0.12 Beta for testing. If everything will be OK, I can release stable.
Joomla 4:
I am overwriting extensions step by step for J4, so the same will be with Phoca Maps.
Yes, if you will fork the component for OSM only and improve with new features, will be great. There is no problem to develop both extensions so user can select which one will fit his/her needs more.
Thank you, Jan
I will try to merge the changes and release 3.0.12 Beta for testing. If everything will be OK, I can release stable.
Joomla 4:
I am overwriting extensions step by step for J4, so the same will be with Phoca Maps.
Yes, if you will fork the component for OSM only and improve with new features, will be great. There is no problem to develop both extensions so user can select which one will fit his/her needs more.
Thank you, Jan
If you find Phoca extensions useful, please support the project
-
- Phoca Member
- Posts: 47
- Joined: 18 Sep 2011, 16:17
Re: Show route/track on OSM map (GPX or KML)
Hi Jan
Plugin is here https://github.com/rogercreagh/PhocaMapsPlugin
Very simple mod - just adding two bits of new code from views/map/view.html.php and tmpl/default.php at lines 537 and 670 in the plugin.
Working ok for me
Cheers
RogerCO
Plugin is here https://github.com/rogercreagh/PhocaMapsPlugin
Very simple mod - just adding two bits of new code from views/map/view.html.php and tmpl/default.php at lines 537 and 670 in the plugin.
Working ok for me
Cheers
RogerCO
- Jan
- Phoca Hero
- Posts: 48299
- Joined: 10 Nov 2007, 18:23
- Location: Czech Republic
- Contact:
Re: Show route/track on OSM map (GPX or KML)
Hi, OK, thank you very much, I need to release Phoca Cart and Phoca Gallery now and then I will take a look at Phoca Maps.
Thank you, Jan
Thank you, Jan
If you find Phoca extensions useful, please support the project