02 Mar 2010 @ 1:11 AM 

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.

Semantic MapsThe 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

[zip, 7z, svn tag]
 25 Jan 2010 @ 8:48 PM 

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:

Maps demo page

I’m also busy with updating the Semantic Maps examples, but that’s still a work in progress.

http://wiki.bn2vs.com/Maps
Posted By: Jeroen De Dauw
Last Edit: 25 Jan 2010 @ 08:48 PM

EmailPermalinkComments (0)
Tags
 19 Jan 2010 @ 11:35 PM 

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.

Maps 0.5.2 displaying a Google Earth map with multiple=

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.

Semantic Maps 0.5.2 showing queried data on a Google Maps map.

Downloads

 17 Dec 2009 @ 7:42 PM 

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:

  • Strict parameter validation which allows you to get specific errors or warnings when entering invalid values or parameters. This functionality is obtained by relying on the Validator extension, which saw it’s first release today. This makes Maps dependent on Validator. Every distribution of Maps does include Validator, and Maps will automatically load Validator when it’s not loaded yet, so no extra installation work is required (unless you get the code from SVN).
  • Static map support makes you 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.
  • Added a query printer that handles the osm result format.
  • Added support for GUI parameter selection of Yaron’s new version of SMW’s Special:Ask page to the query printers.
  • Added smart ‘autopanzoom’ like control for Google Maps and Yahoo! Maps.
  • Added internationalization to the OSM service, and an extra parameter to define per-map languages.

The list of all things that have been refactored is rather long, so I’ll only cover the most interesting things here:

  • Complete rewrite of the parameter handling. To make Maps work with Validator, this was required. The result is that Maps does not have a whole mess of specific validation and defaulting functions any more, since that’s now handled by Validator.
  • Moved the geographical coordinate data type handling from Semantic MediaWiki to Semantic Maps. This will make the SMW codebase smaller by moving the geographical coordinate data type out, which is logical, since if you use coordinates, you very likely also want maps.
  • Added code to unload any services from the service hook that are not present in the list of allowed services. This ensures they don’t get initialized, and makes any check to see if the service is one of the allowed ones further on unneeded.

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:

 15 Dec 2009 @ 11:56 PM 

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.

Screencast by Jeroen De Dauw demonstrating the use of the display_point parser function.

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.

Posted By: Jeroen De Dauw
Last Edit: 16 Dec 2009 @ 12:12 AM

EmailPermalinkComments (0)
Tags
 03 Dec 2009 @ 7:44 PM 

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:

Maps displaying a static map of Brussels, Belgium

The dynamic map you get after clicking the static map:

Maps displaying a dynamic map of Brussels, Belgium

And yes, the zoom level is off, this is a bug that still needs to be fixed :)

Posted By: Jeroen De Dauw
Last Edit: 03 Dec 2009 @ 08:31 PM

EmailPermalinkComments (0)
Tags
 03 Nov 2009 @ 9:22 PM 

It’s been almost 2 months since Maps version 0.3.4 was released. Although I did waste a lot of my time at school, I managed to get quite some important work done in that period. Version 0.4 mainly addressed new functionality, and some thorough refactoring for Maps, and only introduced 2 bug fixes for Semantic Maps. So lets have a look at everything that changed :)

New features

  • I added a display_map parser function, that’s obviously meant to display maps. The code handling this parser function is optimized to display maps, and does not hold into account any possible markers, ect. The main reason for adding this function is that it’ll be used for the Wikimedia Foundation implementation of Maps.
  • Smart geocoding support. Maps is now able to determine if a value is a set of coordinates, or an address. This enables automatic geocoding of addresses, making the specification of the value type unneeded, and allows you to mix coordinates and addresses in location lists. This functionality is implemented for display_map’s default parameter, the one of display_point(s), and display_point(s) centre property.
  • OpenStreetMap service. This service uses OpenLayers to display OpenStreetMap tiles. It’s optimized for OSM, and does not allow you to display other tile sources with it. This is another of the requirements for WF usage that’s now been completed. This service is only implemented in Maps ATM, and will be added to Semantic Maps in version 0.5.
  • Support for DM (Decimal Minutes) and DD (Decimal Degrees) coordinate notations. Someone requested these to be added. Several other variants, such as GPS coordinates, might be put into Maps in the future.
  • Added a setting specifying the minimum and maximum width and height of maps. When a value falls out of this range, it’ll be changed to the nearest allowed value. This is to prevent post-stamp or wallpaper maps, and is inspired by the similar functionality in the SlippyMap extension.
  • Parsing of marker-specific title and label values. I actually marked the lack of this feature a bug a while ago, which I changed at the point where I remembered I simply did not add such a thing yet, and only map-wide title and label value’s got parsed.

Refactoring (“under the hood” changes)

  • A new hook system for the parser functions, allowing the adding or removing of additional parser function support. Each mapping service will now have one class for handling on specific parser function. Again, the main reason behind this change is that it’s required for the WF usage of Maps, where at the start, only display_map will be used. Another great advantage is that you can now very easily add new parser functions without having to mess up the core extension code. An example of such a function is display_route, which might be added at some point to maps.
  • Change the geocoding functionality into a true feature hook element, so it can be easily removed. This is not easy to do, since the geocoding functionality is currently used at various points by the parser functions. So before I can start making it a feature hook element, the parser function code will have to be restructured.
  • Create service hook for the geocoding feature – separate from the mapping services hook. This will allow adding and removing support for a specific geocoding service.
  • Since Maps is now able to distinguish coordinates from addresses, the display_address and display_addresses parser functions have been removed. For backward compatibility, calls to them will be routed to display_point(s). This will of course eventually be removed.
  • Removed a redundant path variable. One of the messy remains of the initial Maps release, which even caused problems on some installations.

Bug fixes

  • Fixed a mayor bug in the initialization method causing hook code to get executed at a probably wrong moment. This bug can be the cause of some weird problems that surfaced since 0.3.3.
  • Fixed a rather annoying issue with size of popups in Google Maps. They did not stretch far enough vertically for large contents. I’m happy I got this fixed now, since I’ve been aware of it for quite a while now, but simply could not find a solution. Yaron pointed me to a helpful blog where a certain post set me on the right track. The solution was ridiculously simple, and one line (in the JS code) long.
  • Fixed some problems with the display of the mapping result formats on the Special:Ask page of Semantic MediaWiki. I’ve done this by adding an aliasing system for result formats to SMW itself. So to be able to benefit from this, you need to have that version of SMW, or later. Maps has a build in check to see if the aliasing functionality of SMW is present, and if not, uses the old, but a lot less efficient, solution.

For the change log listing, see Maps version history and Semantic Maps version history.

The documentation has been completely updated for both extensions. I only have to change the demo’s on my demo wiki to reflect the new syntaxis of the parser functions. After that I can get to work on the to-do’s for version 0.5, which will include the long awaited static map support :)

Did I mention Semantic Maps now supports over 50 languages? :p

Downloads

Maps 0.4

 04 Sep 2009 @ 8:15 PM 

Me and Yaron, my former Google Summer of Code mentor, agreed that Maps would be a good choice as mapping extension on the wikimedia wiki’s, like Wikipedia and Mediawiki.org. There are various reasons why we think Maps is the best choice, but I’m not going to list them here.

I’ve recently discussed this with Ævar, one of the front people in the effort of getting mapping onto wikimedia’s wiki’s. The current plan is to display maps provided by OpenStreetMaps via the OpenLayers API. This includes creating a map tile rendering infrastructure, since the OSM service would simply not be able to cope with all requests if maps are all over Wikipedia. Basically, the complete OSM database will be copied to Wikimedia servers, from where it’ll be processed. Later on data might be directly added to that, loose from OSM. This would allow to add things like bird migration patterns to maps, which is not, and mpost likely will not, be present on OSM. Another big difference with the current usage of maps is that the OL maps won’t be simply ’shown’ to a user. A requirement to put the mapping onto Wikipedia and the other wiki’s is that it should be usable by people that do not have JavaScript enabled, or use a browser that does not support it (that can happen when you live in the time zone that’s still in the stone age apparently). Concretely this means a rendered static image will be displayed of the map, without any of the map controls. Users will not be able to zoom or pan around since it’s a plain static image (.jpg, .gif, .png, stuff like that). When you click on that image however, it’ll be replaced by the map, after which you will have all functionality that comes with OL available.

The biggest part of the mapping effort is going to the stuff that happens ‘behind the scenes’, meaning the rendering and messing around the data. ATM SlippyMap, a small OL-spesific mapping extension, is used to display the actual results. Ævar agreed that Maps probably would suite the needs as well. This list contains some of the most important changes that will need to be made to Maps to make it suitable for large-scale deployment:

  • Maps should be able to handle images from the rendering infrastructure of Wikimedia Foundation.
  • Maps should support static display functionality, meaning display a regular image on page load, and the dynamic map after it’s clicked.
  • The performance of Maps should be optimized – or at least the part relevant to the display of OSM maps via OL.
  • Maps should be able to display maps without any markers on them.

It would also be nice to have the ability to view high resolution images via OL, the so called image-as-layer feature. This was already on Map’s (and Semantic Map’s) to-do list, but has now gotten a higher priority, since it has pretty much been requested by Brion Vibber, the Wikimedia Foundation CTO (he’s totally awesome at giving awesome presentations about awesome stuff btw, which is of course awesomely awesome).

The underneath video is from Wikimania 2009, in Buenos Aires, showing Ævar talking about the rendering infrastructure and SlippyMap.

If you are interested in Wikimania, be sure to check out Yaron’s email report about it.

This is a great opportunity for me, but will require a lot of work before it’s possible. In any case, I’m looking foreward to adding the new functionality to maps, and see how the performance of both the PHP and JS can be increased.

Posted By: Jeroen De Dauw
Last Edit: 04 Sep 2009 @ 08:18 PM

EmailPermalinkComments (0)
Tags
Change Theme...
  • Users » 103
  • Posts/Pages » 133
  • Comments » 85
Change Theme...
  • VoidVoid « Default
  • LifeLife
  • EarthEarth
  • WindWind
  • WaterWater
  • FireFire
  • LightLight

About me



    No Child Pages.