Yesterday I released Maps and Semantic Maps 0.5.4. This is a minor update which mainly brings additional stability and security to the 0.5.x branch. It contains several bug fixes, a few code improvements and some security fixes. Check out the Maps change log and Semantic Maps change log.
The only new functionality is that you can now define OpenLayers layers in your LocalSettings file, as well as layer groups. This is done by modifying the $egMapsOLAvailableLayers, $egMapsOLLayerGroups and $egMapsOLLayerDependencies arrays, which are defined in Maps_Settings.php.
Another noteworthy point is that Semantic Maps now contains all the geographical coordinate format handling that was part of Semantic MediaWiki earlier on. The code has been removed from SMW itself, and the SMW 1.5 release will be the first one without it. A nice side effect of this is that people still using Semantic Google Maps (one of the extensions Maps and Semantic Maps are based on, which is now obsolete (and really should not be used any more!)) will be forced to switch over to Maps and SM if they want to get the latest SMW.
Both extensions now use Validator 0.2.2, which is a minor update to 0.2.1, which was used in 0.5.3.
Downloads
Today I released Maps and Semantic Maps 0.5.3. Both releases mainly include bug-fixes, some of which quite important:
I also discovered an oversight in the hook system of Maps, which is kind of a dormant bug, that could have caused errors for certain implementations of extensions to Maps. The oversight was that a mapping service does not necessary support a sub feature, like the parser function display_point, of a feature, like the parser functions. A check is now in place, together with a defaulting mechanism that also allows you to set the default per sub feature. I’m planning on changing this to a more recursive algorithm in the future though.
A last change is the adding of initial Google Maps v3 support. It’s only implemented for the display_map parser function, and has a rather limited set of customisation parameters at the moment, not to forget a whole load of issues. My conclusion from trying to implement this is that the GMaps 3 API is definitely not in it’s final state yet, since it’s lacking vital methods needed for basic functionality. The support for GMaps v3 is therefore sort of an alpha release, and won’t be put on the documentation page until it’s more stable and complete.
Downloads
As you can see, I changed the location of the releases from my forums to 2 brand new Google Code projects [ Maps, Semantic Maps ].
Over the last week I’ve done some effort to update the Maps usage examples on my wiki to match the current version of Maps. Since I hadn’t made any real change to them since 0.3, most examples where seriously outdated, and in some cases even caused people to use deprecated syntax. Now all Maps examples have been updated, the example pages have been restructured, and new navigation bars have been added.
You can check out the examples on the following pages:
A screenshot of the Maps documentation page:
I’m also busy with updating the Semantic Maps examples, but that’s still a work in progress.
It’s been quite a while since the last release, but 0.5.2 is finally here! It’s not a big release, but features quite some fixes and improvements in the area of marker and pop-up layout.
You can now specify the icon to be used for all markers for both display_point(s) in Maps and result formats in Semantic Maps. A template= and showtitle= parameter have been added to the result formats as well, allowing you to remove the title from a pop-up, and further specifying what should be shown, in which format, by using templates.
On this map you can see that several markers use different icons. This is now easier then in previous versions due to a bug fix.
This map is created by Semantic Maps by querieng some demo data on my wiki. The title of the location is hidden by setting showtitle=no, and the template parameter is used to have a nice little text with the queried data in it as pop-up, contents.
Downloads
Earlier today, versions 0.5 of Maps and Semantic Maps where released. Some mayor new features where added, and a whole bunch of things have been refactored. I also did some effort to improve the documentation by adding some screencasts and revising the developer docs. Version 0.4.2 proved to be pretty stable, since only 2 bugs have been found and fixed.
Let’s have a look at the new, awesome, functionality:
The list of all things that have been refactored is rather long, so I’ll only cover the most interesting things here:
As for documentation, I created 2 screencasts, both covering a different aspect of Maps. This way people can learn how to work with Maps in a more interactive way then just reading the documentation.
The developer documentation on how you can extend Maps using it’s hooks has been completely rewritten. This was needed since the previous version was created for Maps 0.3.3, since which a lot has been changed to the hook systems of Maps.
For a complete list of changes, see the Maps change log, and Semantic Maps change log.
Downloads:
I’ve created a new Maps screencast that covers the use of the display_point parser function of Maps as it works in version 0.5. I’m assuming you have seen the display_map screencast before you watch this one, although the basic syntax is covered again quickly.
I’ve also made the projects for both screencast publicly available. If you have wink, the application I used to create the screencasts, installed, you can simply modify the projects, add your own stuff, and render your own version. I’m hoping some fans of Maps use this possibility to improve the screencasts and help their fellow Maps users.
This has been a big item on the to-do list for new Maps features for a few months now, but I finally managed to make some time for it, and just checked in the last code into the MediaWiki SVN repo
Let’s start at the beginning: what is static map support? Supporting static maps means that you are able to display maps as plain images instead of via a JavaScript (or other non-html language, for example flash) mapping API. This is very important since it makes viewing the maps possible for people who are browsing the web with a browser that does not support JavaScript (or this other language), or simply have it disabled for some reason. This actually made this feature a requirement for getting Maps onto Wikipedia and other Wikimedia Foundation wiki’s. Another reason to use such a feature is that it can significantly reduce the load on the servers from which the map tiles are fetched, since the plain images can be cached.
So how does it work? Maps now accepts a new parameter called ’static’ that accepts the values ‘yes’ and ‘no’. When set to no (or not provided, assuming the default is unchanged, so on ‘no’), you’ll get the same map as you always did, with no changes whatsoever. When the values is ‘yes’, you’ll get a plain .png image fetched from a WF server. If you have JavaScript enabled, and click on the image, it’ll be replaced with the dynamic map.
Maps 0.5 will support this for the display_map parser function when using the OSM service. It’s possible I’ll also add support for display_point(s). Note that my work is just a link in a big chain here. Most effort to make this functionality possible is done by the guys doing the mapping server side work. Also, a lot of my code Maps is using for displaying static maps is heavily based on code from the SlippyMap extension by Ævar Arnfjörð Bjarmason and others.
Since there are no demo’s available anywhere yet, here you have some screenshots:
A static map:
The dynamic map you get after clicking the static map:
And yes, the zoom level is off, this is a bug that still needs to be fixed
One of the big new features in Maps 0.5 will be strict parameter validation. This means Maps will allow you to get specific errors or warnings when entering invalid values or parameters.
The setting determining the strictness of the validation, which can be changes in your LocalSettings file, currently accepts 4 values:
The underneath example demonstrates an error list that can be generated when the validation level is on Maps_ERRORS_SHOW or Maps_ERRORS_STRICT. In case of the former, it’ll be shown below the map,while in case of the later, it’ll be shown instead of any map. The error messages are of course fully internationalized.
The validation is done via a new class dedicated to parameter validation. To be able to validate anything, you need to feed it two things: an associative array containing the raw parameter names and their values, and a somewhat more complex, nested, array containing the allowed parameter and their meta data, such as aliases and default values. The class also provides a hook for validation types, allowing you to do specific or complex validation that is not build in. The handling of the different strictness levels and generation of the actual error messages is done by another class that uses the first to validate and get the errors. Both classes do not contain any Maps specific code, so can be used to validate the parameter of any parser function. I’m planning to split this code, after it has reached a beta level, into a separate extension, that will probably be named “Validator”. This extension will be bundled with Maps, and will not any additional steps to the installation process.
Together with implementing this new feature, I did a big overhaul of the parameter handling in Maps and Semantic Maps. Instead of the two level system, containing general parameters, and service specific parameters, that was used in Maps, there now is a four level system. The first level are the general parameters, shared by everything. These include things like width, height and zoom. Feature specific parameters make up the second level, while the third one holds service specific parameters. The last level are the parameters specific to a combination of service and feature. Maps goes through these levels, starting with the upper one, and overriding it with the following. This allows more specific behaviour and is required to be able to validate the parameters in some instances.
The changes I made to Maps and Semantic Maps during these rewrites are responsible for what are probably my biggest commits to both extensions yet.
Due to the extend of changes I made, and the lack of thorough tests yet, I expect multiple issues with this code, including several severe ones, so I advice against using the latest SVN code for the moment, except for testing purposes of course. I hope to have the code refined and bug hunted in the coming week, so I can put it in a new extension and release it. During this period I’ll also start working on the other new features planned for 0.5, so you can expect more news on this soon.
Yesterday I made my first screencast ever. [ Check it out! ] It explains how you can display a map using the Maps extension for MediaWiki, how you can customize it, and how to interact with it. I’ve linked it from the Maps extension documentation page. Depending on the feedback I’ll get, I might make similar ones explaining how to create maps with markers, how to aggregate coordinates onto a map with Semantic MediaWiki, and how to use the Semantic Forms hooks of Semantic Maps.
Note: the application I used to create this screencast with does not have build in spellings correction, so expect at least one mistake in every 20 words or so
Yesterday I released version 0.4.2 of both Maps and Semantic Maps. Apart from the version number, this release includes some interesting changes.
As resided in my previous post, Maps now supports Google Maps overlays. Another change in it’s usage is that Maps now holds into account the coordinate and address naming of the main parameter. Although both these and the default (nameless) parameter are basically the same, and all indicate the locations that should be indicated (or shown) on the map, they get handled differently with respect to the new (since 0.4) smart geocoding feature. Here you have an overview of the different behaviours:
Version 0.4.2 includes a lot of important bug fixes, and is more a release aimed at stability, then at adding new features. Depending on the amount of issues to be discovered in the coming weeks, a version 0.4.3 might be released before 0.5.
Downloads:

Categories
Tag Cloud
Blog RSS
Comments RSS

Void « Default
Life
Earth
Wind
Water
Fire
Light 