tag:blogger.com,1999:blog-26777744304570393102023-11-16T12:21:31.234+01:00MapFishMapFish development framework blog.Cédric Moullethttp://www.blogger.com/profile/06947117799577904122noreply@blogger.comBlogger176125tag:blogger.com,1999:blog-2677774430457039310.post-87060378962817376082011-09-16T15:10:00.000+02:002011-09-16T15:10:26.215+02:00MapFish is now an OSGeo projectThe MapFish project has satisfied the requirements of the <a href="http://osgeo-org.1803224.n2.nabble.com/Motion-MapFish-Incubation-Graduation-td6676728.html">OSGeo incubator </a>and is now an official OSGeo project.
The following components are part of the incubated OSGeo project:<br />
- <a href="http://www.mapfish.org/doc/2.2/index.html">MapFish Python Framework</a><br />
- <a href="http://www.mapfish.org/doc/print/index.html">MapFish Print</a><br />
- <a href="http://www.mapfish.org/doc/implementations/index.html#rails-plugin">MapFish Rails Plug-In</a><br />
The MapFish PSC and community would like to thanks the OSGeo Board and our Mentor Gary Sherman for their confidence.Cédric Moullethttp://www.blogger.com/profile/06947117799577904122noreply@blogger.com0tag:blogger.com,1999:blog-2677774430457039310.post-55682503163491736392011-05-21T17:12:00.004+02:002011-05-21T17:21:53.085+02:00Usage of MapFish controllers for vector tiling<a href="http://geojason.info/2011/geojson-tiles-with-mapfish/">This blog</a> explains the usage of MapFish server to deliver vector tiles.<br />Have a look at the <a href="http://tiled-geojson.geojason.info/">demo</a>.<br />I really like this implementation, great work Jason ! ;-)Cédric Moullethttp://www.blogger.com/profile/06947117799577904122noreply@blogger.com0tag:blogger.com,1999:blog-2677774430457039310.post-60419286661565492472011-05-21T09:07:00.003+02:002011-05-21T09:14:00.378+02:00MapFish print supports WMTS RESTFul implementationThe <a href="http://www.opengeospatial.org/standards/wmts">Web Map Tile Service OGC standard</a> has been published last year. <a href="http://openlayers.org/dev/examples/wmts.html">OpenLayers supports it</a>. <a href="http://trac.mapfish.org/trac/mapfish/browser/print/trunk/src/main/java/org/mapfish/print/map/readers/WMTSMapReader.java">MapFish print now also supports the RESTFul implementation of the WMTS standard</a>. <br />The KVP implementation is not supported, but this wouldn't be a big deal to implement it. Patch welcome ;-)Cédric Moullethttp://www.blogger.com/profile/06947117799577904122noreply@blogger.com0tag:blogger.com,1999:blog-2677774430457039310.post-30615175261269426232011-04-07T09:44:00.003+02:002011-04-07T10:25:23.910+02:00Summary of FOSSGIS 2011After 3 days in Heidelberg, here are some thoughts about this year's edition of FOSSGIS, the german speaker FOSSGIS conference. After reading the <a href="http://www.fossgis.de/konferenz/2011/programm/">programm</a>, we can see that the hot topics are web mapping (particularly performance and harvesting), open data, crowd sourcing and 3D. I was a bit suprised not to see a lot of presentations about mobile technologies.<br /><br />Several presentations discussed the possibilities of harvesting or aggregation of geospatial sources. For the metadata, several systems are working well, but for the aggregation of goservices of geodata, there is, for now, no real solutions. The usage of MapProxies is one option, cascading geoservices is another option but both face technical and organizational issues. Still some work to do ;-)<br /><br /><a href="http://linkeddata.org/">LinkedData</a> or GeoLinkedData (<a href="http://geo.linkeddata.es/web/guest/home">spain example</a>) is also an area where a lot of works need to be done. I particularly like the idea to use the complete power of the web to access/find geo data.<br /><br />Finally, it's great to see that a lot of works are done around performance. The web user doesn't like to wait and it's very important to deliver the geographical information very fast. Javascript compression, MapProxies or WMTS need to be used to satisfy the end user.<br /><br />On the MapFish side, a lot of presentations mentionned this framework (for example <a href="http://www.energieatlas.org/ ">http://www.energieatlas.org/</a>) and the <a href="http://www.mapfish.org/doc/tutorials/mapfish-tutorial/en/index.html">workshop</a> was overbooked. <a href="http://www.geoext.org/">GeoExt</a> is also very widely used. <br /><br />Great summaries <a href="http://reinout.vanrees.org/weblog/2011/04/index.html">here</a> and some tweets <a href="https://twitter.com/#!/search/fossgis11">here</a>.Cédric Moullethttp://www.blogger.com/profile/06947117799577904122noreply@blogger.com2tag:blogger.com,1999:blog-2677774430457039310.post-48747691146388862342011-04-04T16:38:00.001+02:002011-04-04T16:39:22.290+02:00MapFish 2.1 is out !Version 2.1 of MapFish Framework is out!<br /><br />The highlights of the release include:<br /><br />- re-licensing from GPL to BSD<br />- great performance improvement for bulk inserts (thanks Jorge Gustavo<br />Rocha for your help with that)<br />- now relying on GeoAlchemy 0.5 within_distance implementation<br /><br />The full list of enhancements, bug fixes, and API changes, can be<br />found in the <a href="https://trac.mapfish.org/trac/mapfish/wiki/Releases/2.1/">Release Notes</a> [1]. The <a href="http://www.mapfish.org/doc/2.1/">new documentation</a> is online [2].<br /><br />Thanks to everyone who contributed.Cédric Moullethttp://www.blogger.com/profile/06947117799577904122noreply@blogger.com0tag:blogger.com,1999:blog-2677774430457039310.post-65966858260095991062011-03-11T10:44:00.001+01:002011-03-11T10:44:41.759+01:00Studio Documentation<a href="http://camptocamp.github.com/Studio/">The documentation of Studio</a> has been published.Cédric Moullethttp://www.blogger.com/profile/06947117799577904122noreply@blogger.com0tag:blogger.com,1999:blog-2677774430457039310.post-10646111579120669002011-03-09T18:54:00.004+01:002011-03-09T19:06:12.527+01:00First official release of Studio<a href="http://lists.mapfish.org/pipermail/users/2011-March/003214.html">Camptocamp just announced</a> the release 0.5 of Studio. This initial release allow the editing of MapServer Mapfiles, with a WYSIWYG editor. You can test it here: <a href="http://demo.mapfish.org/studio/">http://demo.mapfish.org/studio/</a><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://demo.mapfish.org/studio/"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 282px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJ3QKRNVGvW0jzIa4dGxZbO5xqc2YX60HBcn5AG2CAQbSLz9CUH90z_83DexkTXriQFv2kbgYLDTPeI0EBOf_6WmJn9QRuhCdLOHA-goclpmVOzqTc3r-4HOGAJIK5n1-MiQ120p76m-U/s400/Studio2.PNG" alt="" id="BLOGGER_PHOTO_ID_5582142949357606706" border="0" /></a><br /><a href="http://groups.google.com/group/studio-discuss">Feedback welcome !</a>Cédric Moullethttp://www.blogger.com/profile/06947117799577904122noreply@blogger.com0tag:blogger.com,1999:blog-2677774430457039310.post-46661892104022881042011-01-16T05:14:00.004+01:002011-02-24T06:53:35.797+01:00Playing with the HTML5 Geolocation APII spent some time last week to explore the possibilities of the Geolocation API and I ended up by creating an <a href="http://trac.geoext.org/browser/sandbox/cmoullet/ux/GeolocationAPI/lib/GeoExt.ux/control/GeolocationAPI.js">OpenLayers control</a>.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://goo.gl/tTTjp"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 349px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEik-3gCEASyoSIYTRZdSKNY9TyeQTiZbD03_11Jg9DgLj9-EBEDDGAP7gExqvN_5ito_l6iuF3LIvmrEaah1g0DOYxdQi-Fm97oH8aeUfuMxeFUvVnIULBqyKJZmSE6lxXCXn8k5AGBnyI/s400/GeoLocationAPI.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5562650109103100994" /></a><br /><br /><span style="font-weight:bold;">Practical considerations</span><br /><br />The <a href="http://dev.w3.org/geo/api/spec-source.html">Geolocation API</a> is very well documented and quite easy to use.<br /><br />Regarding browser support, it works well on Firefox, Chrome, Safari, recent Android and Blackberry browsers. With Gears installed, IE and Opera Mobile can also support this specification. I didn't used Gears, since it is now deprecated.<br /><br />The Geolocation API doesn't rely on one location technology. The browser can decide which method it will use. Several methods exist:<br />- Of course, GPS<br />- Assisted GPS<br />- WIFI positioning (WPS)<br />- Cell information<br />- IP Address<br />- Carrier connection<br />- Language<br />- Indoor location<br />The accuracy of these methods is very variable, from cm to hundred of kilometers. The Geolocation API provides an information about accuracy, but I have observed a kind of randomness in these values. I would consider it as a magnitude and not as a precise value (like a standard deviation, for example). From the specification "The accuracy and altitudeAccuracy values returned by an implementation should correspond to a 95% confidence level": the "should" is here important.<br /><br /><span style="font-weight:bold;">Implementation considerations</span><br /><br />An example of the usage of the <a href="http://trac.geoext.org/browser/sandbox/cmoullet/ux/GeolocationAPI/lib/GeoExt.ux/control/GeolocationAPI.js">Geolocation API control</a> can be seen <a href="http://goo.gl/tTTjp">here</a> (in debug mode, so it can take some time to load). I use the excellent code provided by Camptocamp mentionned <a href="http://www.camptocamp.com/en/blog/2010/12/mobile-web-gis/">here</a>. This should work on mobile and desktop browsers that support the Geolocation API.<br /><br />In order to test the Geolocation API control, the following code can be used (<a href="http://trac.geoext.org/browser/sandbox/cmoullet/ux/GeolocationAPI/examples/geolocationapimobileexample.js">complete code</a>):<br /><blockquote><br />var GeolocationAPIControl = new OpenLayers.Control.GeolocationAPI({<br /> mode: 'position',<br /> displayPosition: false,<br /> displayAccuracy: true,<br /> geolocationOptions: {timeout:3000}});<br />map.addControl(GeolocationAPIControl);<br />GeolocationAPIControl.activate();<br /></blockquote><br />In this case, the Geolocation API will determine the position of the browser and center the map according to the accuracy extent. A circle will be represented in order to give an idea of the accuracy.<br />Instead of using the "position" mode, it is possible to use the "tracking" mode. In this case the position of the browser is tracked and the map is centered accordingly.<br /><br />The Geolocation API functions "navigator.geolocation.getCurrentPosition" and "navigator.geolocation.watchPosition" accepts three parameters:<br />- a <a href="http://trac.geoext.org/browser/sandbox/cmoullet/ux/GeolocationAPI/lib/GeoExt.ux/control/GeolocationAPI.js#L280">success callback</a> function used to implement the behaviour of the application when a position is determined.<br />- an optional <a href="http://trac.geoext.org/browser/sandbox/cmoullet/ux/GeolocationAPI/lib/GeoExt.ux/control/GeolocationAPI.js#L296">error callback</a> function used to implement the behaviour of the application when the browser can't determined its position (also if the user doesn't accept to share its location)<br />- optional options used to configure the positioning. Three parameters can be used: <br /> * enableHighAccuracy: provides a hint that the application would like to receive the best possible results.<br /> * timeout: denotes the maximum length of time (expressed in milliseconds) that is allowed to pass from the call to getCurrentPosition() or watchPosition() until the corresponding successCallback is invoked. Be aware that it can take a long time to get a position.<br /> *- maximumAge: indicates that the application is willing to accept a cached position whose age is no greater than the specified time in milliseconds. <br /> <br />I would be happy to receive feedback and feature requirements about this control.<br /><br /><span style="font-weight:bold;">Update</span><br />A control is now part of the OpenLayers code base. Test it here: <a href="http://www.openlayers.org/dev/examples/geolocation.html">http://www.openlayers.org/dev/examples/geolocation.html</a>Cédric Moullethttp://www.blogger.com/profile/06947117799577904122noreply@blogger.com3tag:blogger.com,1999:blog-2677774430457039310.post-86845136689232140692011-01-03T08:27:00.003+01:002011-01-03T08:42:45.753+01:00Seven 2011 geo predictionsLet's try to make a difficult exercise: the predictions. Here are some thoughts about what could happen next year. Of course these opinions are mine (so not of my employer or the MapFish community) and I don't pretend to cover all the geo world.<br /><br />PS: it's not really related to MapFish, but some trends will of course have an impact on MapFish. <br /><br /><span style="font-weight:bold;">First 2011 geoprediction: the geospatial mobile year</span><br />We all want to use our favourite geo application on our smartphone, but this is often not possible. The main reason for that is the the lack of libraries supporting the very (too ?) wide varieties of mobile devices.<br />Several works on OpenLayers have already been done and I hope to see in 2011 a joint effort to make OpenLayers the reference in the geo mobile world. Another hope is to see a consensus regarding the user interaction models for geo applications on mobile devices.<br /><br /><span style="font-weight:bold;">Second 2011 geoprediction: always more cloud gis applications</span><br />We read all and its contrary about cloud computing. One key think to understand about cloud computing is that you can't simply "copy/paste" an application in a cloud infrastructure. In order to use the advantage of cloud computing, the applications need to be rearchictectured. I believe that the understanding of cloud computing will grow in 2011 and the advantages like low cost, scalability or reliability will make cloud computing the best solution for a large number of geo application. <br /><br /><span style="font-weight:bold;"><br />Third 2011 geoprediction: the start of the end of heavy clients</span><br />Technologies like Silverlight or Flash/Flex will start to decline. <br />The main reason is of course the emergence of HTML5 and all the nice associated features like Geolocation API, CSS3, Canvas etc, etc... <br /><br /><span style="font-weight:bold;">Fourth 2011 geoprediction: clear separation between web mapping and web gis</span><br />It's always difficult to categorize the applications, but I believe that a geo application for all citizen can't be the same like a geo application for specialists. That's where I see the difference between web mapping and web gis. The ergonomy is key for web mapping and the functionality is key for web gis, but this doesn't mean that ergonomy is not important for web gis. I have seen often applications trying to cover the needs of ALL users. We'll see probably in the future more specifics and dedicated geo applications. <br /><br /><span style="font-weight:bold;">Fifth 2011 geoprediction: geoservices for all and everything</span><br />The vision of programms like INSPIRE is to allow the interconnection of Geo Services. This vision will soon be reality and we'll see always more Spatial Data Infrastructure delivering Geo Services.<br /><br /><span style="font-weight:bold;">Sixth 2011 geoprediction: REST, RESTFull and (Geo)JSON</span><br />The simplicity of the REST principles, the lightness of the JSON format and the possibility to workaround the cross domain issues will make that the usage of XML or SOAP, at least in a web context, will decline. And I hope that the future geo web standards will use REST and GeoJSON. <br /><br /><span style="font-weight:bold;">Seventh 2011 geoprediction: WebGL will allow fantastic 3D applications</span><br />The usage of plugin is always difficult to manage. With the emergence of WebGL, it is now possible to develop 3D viewer using directly the browser capabilities. Let's hope that this chance will be used !<br /><br />I wish you all the best for 2011 !Cédric Moullethttp://www.blogger.com/profile/06947117799577904122noreply@blogger.com2tag:blogger.com,1999:blog-2677774430457039310.post-19207998501597004382010-12-13T02:17:00.002+01:002010-12-13T02:21:17.800+01:00MapFish Tutorial and Python WorkshopAs mentionned in the <a href="http://www.camptocamp.com/fr/blog/2010/12/foss4g-2010-camptocamp-workshop-and-tutorial/">Camptocamp blog</a>, you can now access a <a href="http://www.mapfish.org/doc/tutorials/python-workshop/index.html">Python Workshop</a> and a <a href="http://www.mapfish.org/doc/tutorials/mapfish-tutorial/index.html">MapFish Tutorial</a>.Cédric Moullethttp://www.blogger.com/profile/06947117799577904122noreply@blogger.com0tag:blogger.com,1999:blog-2677774430457039310.post-31759837793722873962010-09-17T14:15:00.002+02:002010-09-17T14:22:55.584+02:00MapFish at Intergeo 2010<a href="http://www.intergeo.de">Intergeo </a>defines itself as the world’s largest event and communication platform for geodesy, geoinformation and land management. It will be this year in Cologne from 5th to 7th October 2010.<br />Camptocamp will present MapFish at the Open Source Park and Terrestris will also have a booth with MapFish demos. Meet the specialists over there ;-)Cédric Moullethttp://www.blogger.com/profile/06947117799577904122noreply@blogger.com0tag:blogger.com,1999:blog-2677774430457039310.post-10552963390741285522010-09-09T15:03:00.002+02:002010-09-09T15:04:16.392+02:00Foss4g 2010: Python WorkshopIf you want to know more about the usage of python, a nice <a href="http://www.mapfish.org/doc/tutorials/python-workshop/">workshop </a>held at Foss4g 20010 is now available.Cédric Moullethttp://www.blogger.com/profile/06947117799577904122noreply@blogger.com0tag:blogger.com,1999:blog-2677774430457039310.post-12747002328199250932010-09-09T14:57:00.002+02:002010-09-09T14:58:27.628+02:00Foss4g 2010: First steps with MapFishDon't hesitate to test MapFish with the <a href="http://www.mapfish.org/doc/tutorials/mapfish-tutorial/">tutorial</a> just presented at Foss4g 2010.Cédric Moullethttp://www.blogger.com/profile/06947117799577904122noreply@blogger.com0tag:blogger.com,1999:blog-2677774430457039310.post-30264261424279475142010-09-06T14:12:00.002+02:002010-09-06T14:28:08.410+02:00MapFish at Foss4GIt's time for the annual geomatic FOSS event. This year, several workshops, tutorial or presentations will present the latest information about MapFish.<br />- On Mon 6, between 15h and 18h, I imagine that Eric and Bruno will illustrate the workshop "Solid web mapping with Python" with MapFish examples.<br />- On Thursday 9, at 11h, you'll have the possibility to make your first steps with MapFish during a tutorial.<br />- Tuesday 7, 16h30, "GeoExt and MapFish client components: how to migrate ?" will present the migration path from MapFish client to GeoExt.<br />- Tuesday 7, 16h30, "Where is MapFish going ?" will deliver some insights in the future<br />- Thursday 9, 9h, the MapFish print module will be introduced.<br />- Thursday 9, 14h, an integration of MapFish application within the DRUPAL CMS will be presented.<br />I probably miss some presentations related to MapFish. I look forward to meet you in Barcelona. Cu.Cédric Moullethttp://www.blogger.com/profile/06947117799577904122noreply@blogger.com1tag:blogger.com,1999:blog-2677774430457039310.post-64832587537777962452010-09-03T07:01:00.001+02:002010-09-03T07:06:37.421+02:00MapFish Release 2.0 is ready !The MapFish community is proud to announce MapFish 2.0!<br /><br />The highlights of the release are:<br /><br /> * MapFish 2 comes with GeoAlchemy, and uses GeoAlchemy internally. Among other things, this brings MapFish support for PostGIS as well as Spatialite, MySQL, and Oracle Spatial. <a href="http://geoalchemy.org">See to know more about<br />GeoAlchemy.</a><br /> * MapFish 2 is based on <a href="http://pylonshq.com/articles/archives/2010/5/pylons_10_released">Pylons 1.0</a>, the first stable version of Pylons.<br /> * the API of MapFish 2 is incompatible with that of MapFish 1.2, <a href="http://www.mapfish.org/doc/2.0/framework/upgrading.html">see to know how to migrate your applications</a>.<br /> * the client plugin installs OpenLayers 2.9.1, and GeoExt 0.7 in the application, and does not longer install MapFish Client.<br /><br />The full list of enhancements and bug fixes can be found in the <a href="https://trac.mapfish.org/trac/mapfish/wiki/Releases/2.0/">Release Notes</a>.<br /><br />To install MapFish 2.0 <a href="http://www.mapfish.org/doc/2.0/installation.html">follow this</a>. And to get a sense about how MapFish can help you check out our <a href="http://www.mapfish.org/doc/2.0/quickstart.html">quickstart </a>.<br /><br />Thanks to everyone who contributed to the release, and especially to Tobias Sauerwein who worked on GeoAlchemy and its integration in MapFish.<br /><br />We're looking forward to your feeback.Cédric Moullethttp://www.blogger.com/profile/06947117799577904122noreply@blogger.com0tag:blogger.com,1999:blog-2677774430457039310.post-83927470228638415512010-08-01T18:32:00.002+02:002010-08-01T18:37:23.171+02:00What is MapFish ?In the last few weeks, I read several mails about MapFish and I think that it is time to try to explain what is MapFish exactly (<a href="http://mapfishblog.blogspot.com/2009/01/what-is-mapfish-exactly.html">I already tried one year ago, but without success...</a>).<br />First of all, it is a development framework. So, if you are not a developper, you can read the next chapter, then have a drink and enjoy the summer.<br /><span style="font-weight:bold;">MapFish for non developper</span><br />MapFish is a complete development framework used for the creation of Web Spatial Data Infrastructure. The client components (client means navigator in that context) helps the developper to build Rich User Interfaces. The server components helps the developper to build spatial REST services like geocoding, reverse geocoding, spatial analysis or spatial editing.<br /><span style="font-weight:bold;">MapFish for developper</span><br />MapFish server is a Pylons application (or, more precisely a Pylons template).Pylons is a lightweight web framework emphasizing flexibility and rapid development. MapFish basically adds the spatial support to Pylons. If your data are stored in PostGIS, it’s a piece of cake to create spatial REST services for CRUD operations (<a href="http://trac.mapfish.org/trac/mapfish/wiki/MapFishProtocol">it’s what is called the MapFish protocol</a>). MapFish server is mainly developped in Python.<br />MapFish client is an aggregation of several JavaScript libraries. ExtJS is used for creating standard UI components. OpenLayers is used for the map and GeoExt combines the power of ExtJS and OpenLayers. With the creation of the GeoExt library, it makes no sense anymore to have specific Javascript code in MapFish.<br />If you follow the <a href="http://www.mapfish.org/doc/1.2/installation.html">MapFish Installation</a> and <a href="http://www.mapfish.org/doc/1.2/quickstart.html">MapFish Quickstart</a>, you’ll see that MapFish prepares everything for you and you don’t have to care about the management of the several libraries that are included within MapFish.Cédric Moullethttp://www.blogger.com/profile/06947117799577904122noreply@blogger.com3tag:blogger.com,1999:blog-2677774430457039310.post-36228303065445109602010-06-13T06:22:00.003+02:002010-06-13T06:38:46.871+02:00WMTS in OpenLayersI mentionned in a <a href="http://mapfishblog.blogspot.com/2010/05/from-tilecache-to-wmts.html">previous post</a> the release of the OGC WMTS implementation standard.<br />OpenLayers <a href="http://trac.openlayers.org/ticket/2637">has just been extended </a> to support this implementation standard. A <a href="http://trac.openlayers.org/browser/trunk/openlayers/lib/OpenLayers/Layer/WMTS.js">WMTS layer</a> and a <a href="http://trac.openlayers.org/browser/trunk/openlayers/lib/OpenLayers/Format/WMTSCapabilities/v1_0_0.js">WMTS capabilities</a> have been added and can be used with WMTS compatible servers. The very nice thing is that it supports KVP and REST encoding.<br />You can find two new examples in the OpenLayers examples: <a href="http://www.openlayers.org/dev/examples/wmts.html">WMTS layer</a> and <a href="http://www.openlayers.org/dev/examples/wmts-capabilities.html">WMTS capabilities parsing</a>.<br />Thanks Tim and August for this very nice work.Cédric Moullethttp://www.blogger.com/profile/06947117799577904122noreply@blogger.com0tag:blogger.com,1999:blog-2677774430457039310.post-41902030540697352532010-05-29T21:18:00.002+02:002010-05-29T21:21:45.633+02:00MapFish pour les collectivités publiquesLe projet GéoBretagne a démontré la pertinence de l'utilisation de logiciels OpenSource dans le cadre d'infrastructures de données spatiales. <br />Outre, bien évidemment, Mapfish, des outils comme GeoNetwork ou GeoServer ont permis de remplir les exigences du projet GéoBretagne. <a href="http://2010.rmll.info/GeoBretagne-vers-GeOchestra.html">Plus d'informations ici</a>.Cédric Moullethttp://www.blogger.com/profile/06947117799577904122noreply@blogger.com0tag:blogger.com,1999:blog-2677774430457039310.post-91614932867784537412010-05-10T13:34:00.004+02:002010-05-10T14:04:19.762+02:00Do you want to test MapFish ?You can use a <a href="http://mapfish.org/downloads/vmware_mapfish_workshop.tar.gz">VMWare image</a>, preconfigured with GIS Software (MapServer, PostGis etc...) on a Debian distribution.<br />If you don't know where to start, try <a href="http://dev.mapfish.org/sandbox/camptocamp/mapfish_workshop_fossgis2010/printing_src/_build/html/">this workshop</a>.<br />Thanks to Bruno for the preparation.Cédric Moullethttp://www.blogger.com/profile/06947117799577904122noreply@blogger.com0tag:blogger.com,1999:blog-2677774430457039310.post-86404530068308695572010-05-09T05:00:00.006+02:002010-05-09T06:25:07.372+02:00From TileCache to WMTSI love TileCache ! We have created billions of tiles with it (<a href="http://map.geo.admin.ch/">http://map.geo.admin.ch/</a>,<a href="http://plan.epfl.ch/">http://plan.epfl.ch/</a>, <a href="http://map.veloland.ch/">http://map.veloland.ch/</a>, <a href="http://coppet.geocommunes.ch/">http://coppet.geocommunes.ch/</a> etc, etc...). The only issue with TileCache is that it's not an official standard. <br />The OGC has just released, on 2010.04.06, the first version of the<a href="http://www.opengeospatial.org/standards/wmts"> WMTS (Web Map Tile Service) implementation standard</a>. And the very good thing is that one part of the standard proposes a RESTFul implementation. I can already hear some comments like 'all this time for that', but now that it exists, it's probably a good idea to use it. I still think that the service oriented architecture (KVP and more fantastic SOAP (have a look at the wmts:BinaryContent XML tag...)) is a non sense, so this article will only focus on the resource oriented architecture. The standard contains a nice sentence: "The RESTful pattern provides the ability to set up conformant WMTS servers simply", so let's have a look if it's possible to use a TileCache tile sets and serve it as RESTFull WMTS .<br /><br /><span style="font-weight:bold;">Layer</span><br />The notion of layer is the same in TileCache and WMTS. <br /><br /><span style="font-weight:bold;">Tile Matrix Set</span><br />The notion of Tile Matrix Set doesn't exist in TileCache. A Tile Matrix Set is a collection of tile matrices defined at different scales. For one layer, you can define several Tile Matrix Sets, typically if you want to create tiles in various coordinate systems.<br /><br /><span style="font-weight:bold;">Tile Matrix</span><br />A tile matrix is a collection of tiles for a fixed scale. The tile organization is not the same in TileCache and in WMTS.<br />For TileCache, the first tile (0,0) is on the bottom left:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOSy5hnN344BBZWbg_LcorTpjinnKB5VGKZYq2x_h0sCnQg0ctDAKzZtrtx_nOmQCFoLG8GhDVLPTjk4nXACFXnrBZTiqpdxarlE07r2O9Mg3OHd0OPGQgUi0kHnGuycMM4QU8wT6qUJw/s1600/TileCacheMatrix.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 274px; height: 258px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOSy5hnN344BBZWbg_LcorTpjinnKB5VGKZYq2x_h0sCnQg0ctDAKzZtrtx_nOmQCFoLG8GhDVLPTjk4nXACFXnrBZTiqpdxarlE07r2O9Mg3OHd0OPGQgUi0kHnGuycMM4QU8wT6qUJw/s400/TileCacheMatrix.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5469110653807780290" /></a><br /><br />For WMTS, the first tile (0,0) is on the top left:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiT8WgFWU_g1MOW5i_I-UrnLgPELGcxGUksNjdxbyeO5O08k8L4jAyjBeAPqi3_ftvzyKb1NPgoMh9S9Q5fPeYQwermkHC66pHA_y4fZ_cZtWzYR3n4n7wp-g81XWpqBivkZL73q7RUHow/s1600/WMTSMatrix.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 274px; height: 277px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiT8WgFWU_g1MOW5i_I-UrnLgPELGcxGUksNjdxbyeO5O08k8L4jAyjBeAPqi3_ftvzyKb1NPgoMh9S9Q5fPeYQwermkHC66pHA_y4fZ_cZtWzYR3n4n7wp-g81XWpqBivkZL73q7RUHow/s400/WMTSMatrix.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5469110787691761378" /></a><br /><br />But, it's quite easy to name the same tile in both coordinate systems. The following conversion functions can be used:<br />* WMTS.i = TILECACHE.x<br />* WMTS.j = HeightNumberOfTiles - TILECACHE.y<br /><br />The notion of scale in TileCache is simply an integer indexing the tile pyramid (from 0 to n). WMTS offers more freedom for the scale and the identifier can be chosen freely. But it's still possible to convert from WMTS to TileCache:<br />* WMTS.z (or Tile Matrix identifier) = TILECACHE.scale<br /><br /><span style="font-weight:bold;">Style</span> <br />In WMTS, the style has been defined as mandatory. Not very clever from my point of view. This should be an optional value. But let's add "default" everywhere... And I still don't understand why the style is defined on the layer level. <br /><br /><span style="font-weight:bold;">Redirection from TileCache to WMTS</span><br />A TileCache url:<br /><br /> - http://myTileServer/myLayer/15/000/000/000/000/000/002.jpeg<br /><br />Can be easily redirected to a WMTS url:<br /><br /> - http://myTileServer/myLayer/default/myTileMatrixSet/15/0/0.jpeg<br /><br />And, in order to use and see the WMTS tiles, OpenLayers, offers, for example, a very convenient class XYZ:<br /><br /> - new OpenLayers.Layer.XYZ("myLayer",<br /> "http://myTileServer/myLayer/default/myTileMatrixSet/${z}/${y}/${x}.jpeg")Cédric Moullethttp://www.blogger.com/profile/06947117799577904122noreply@blogger.com3tag:blogger.com,1999:blog-2677774430457039310.post-85676482833017726832010-05-04T15:36:00.001+02:002010-05-04T15:36:43.729+02:00Introduction à MapFishUne introduction générale à MapFish en français donnée aux rencontres SIG LA LETTRE 2010<div style="width:425px" id="__ss_3948082"><strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/cedricmoullet/sig-la-lettremapfish" title="MapFish, 2010">MapFish, 2010</a></strong><object id="__sse3948082" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=siglalettremapfish-100503082532-phpapp02&stripped_title=sig-la-lettremapfish" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse3948082" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=siglalettremapfish-100503082532-phpapp02&stripped_title=sig-la-lettremapfish" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object><div style="padding:5px 0 12px">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/cedricmoullet">Moullet</a>.</div></div>Cédric Moullethttp://www.blogger.com/profile/06947117799577904122noreply@blogger.com0tag:blogger.com,1999:blog-2677774430457039310.post-4813547114135244082010-05-01T06:01:00.002+02:002010-05-01T06:33:30.299+02:00ExtJS - JQuery - FlashOn the client side, MapFish had to make several choices in order to propose one framework for building Rich Internet Applications. The main criteria of this choice was the flexibility, the completeness, the multi browser support and the power. There are probably several technologies or libraries that are able to meet these criteria, so, at the end, a choice is needed. For MapFish, the choice was to use OpenLayers, ExtJS and GeoExt as JavaScript libraries. <br />And now, the famous questions: Why not JQuery ? Why not Flash/Flex ? Why not Dojo ? Why not etc, etc... ? Easy answer: a choice had to be made. For more arguments, I propose to read two very interesting blogs:<br />- <a href="http://www.grantshepert.com/post.cfm/jquery-and-or-extjs">JQuery and/or ExtJS</a> I like the neutral approach and arguments. <br />- And of course, the <a href="http://www.apple.com/hotnews/thoughts-on-flash/">famous blog of Steve Job</a>. I like the non neutral approach and some of the arguments. Of course <a href="http://online.wsj.com/video/adobe-and-apple-ceo-square-off/5C074A32-B7A3-47EC-9B53-E7A8A5A04E49.html">Adobe has an answer</a>. But about this answer, sorry, I can't believe the sentence "Create once and deploy on multiple devices". It's per definition wrong, other why would you have multiple devices if you would have always the same application ? Needs are different, users are differents, expectations are different... so applications will be different. It's a nice sentence, but it's not the reality. And if Adobe has 8 millions download of Flash per day, it's probably because users have always the wrong flash version installed....Cédric Moullethttp://www.blogger.com/profile/06947117799577904122noreply@blogger.com1tag:blogger.com,1999:blog-2677774430457039310.post-55754398142136582152010-04-28T11:23:00.004+02:002010-05-03T15:00:14.250+02:00Luxembourg NSDI with MapFishThe "Grand Duché du Luxembourg" works with MapFish to diffuse their spatial data: <a href="http://map.geoportail.lu/">http://map.geoportail.lu/</a><br />Several nice widgets have been used in this geoportal:<br />- A redlining tool (<a href="http://dev.geoext.org/sandbox/redlining/ux/FeatureEditing/examples/RedLiningPanelExample.html">see a demo</a>) <br />- A scale selector (<a href="http://dev.geoext.org/sandbox/cmoullet/ux/ScaleSelectorCombo/examples/ScaleSelectorComboExample.html">see a demo</a>)<br />- A display projection selector (<a href="http://dev.geoext.org/sandbox/cmoullet/ux/DisplayProjectionSelectorCombo/examples/DisplayProjectionSelectorComboExample.html">see a demo</a>)<br />- A catalog tree allowing the access to a large number of layers.<br />More information in french <a href="http://www.act.public.lu/fr/actualites/2010/03/guichet-portail/index.html">here</a>Cédric Moullethttp://www.blogger.com/profile/06947117799577904122noreply@blogger.com0tag:blogger.com,1999:blog-2677774430457039310.post-13850061337689144302010-04-26T16:07:00.005+02:002010-04-26T16:33:33.086+02:00Irish MapFish Wind & Geothermal webmapsGeoconnexion publishes in it's April edition an article about the new public mapping system of the Sustainable Energy Authority of Ireland (SEAI). The SEAI created a public mapping system based on MapFish – the Wind & Geothermal Atlas - which acts as an atlas for viewing wind and geothermal energy data in Ireland.<br /><span class="status-body"><span class="status-content"><span class="entry-content"><br />The MapFish Applications:<br /></span></span></span><ul><li><a href="http://maps.sei.ie/wind/"><span class="status-body"><span class="status-content"><span class="entry-content">http://maps.sei.ie/wind/</span></span></span></a></li><li><a href="http://maps.sei.ie/geothermal/"><span class="status-body"><span class="status-content"><span class="entry-content">http://maps.sei.ie/geothermal/</span></span></span></a></li></ul><span class="status-body"><span class="status-content"><span class="entry-content">The<a href="http://www.geoconnexion.com/uploads/renewableenergy_intv9i4.pdf"> detailed article</a> published in geoconnexion.</span></span></span>Emmanuel Belohttp://www.blogger.com/profile/03724859285999634389noreply@blogger.com0tag:blogger.com,1999:blog-2677774430457039310.post-71264141025046175072010-04-20T06:28:00.002+02:002010-04-20T06:44:59.070+02:00MapFish and OpenAddresses podcastedThe goal of OpenAddresses is to create an open and free database of geolocated addresses. You can learn more about this project in the <a href="http://bit.ly/aZPGAf">Directions Magazine podcast</a> or in the <a href="http://openaddresses.googlecode.com/files/PressReleaseBetaEN.pdf">press release</a>.<br />The ease of use and simplicity of <a href="http://www.mapfish.org/">MapFish </a>allowed the creation of this site in a few weeks. The very nice thing is that MapFish provides automatically a complete range of REST services (<a href="http://code.google.com/p/openaddresses/wiki/RESTService">see here</a>). For OpenAddresses, a powerful Full Text Search has been developped and will be soon integrated in MapFish. On the client side, the usage of <a href="http://www.extjs.com/">ExtJS</a>, <a href="http://www.openlayers.org/">OpenLayers </a>and <a href="http://www.geoext.org/">GeoExt </a>was very flexible and proposes an ergonomic UI. This is particularly important in crowd-sourcing efforts because the learning curve has to be very short. Since data are edited, it was also important to facilitate the acquisition work in order to let the user create a large number of addresses in short time, in another word: efficiency.<br />On the cartographic server side, <a href="http://www.mapserver.org/">MapServer </a>is acting as a cascading WMS. This technology allows the usage of whatever open WMS in the world. MapServer will handle the reprojection work if necessary.<br />Don't forget to add you own address ;-)Cédric Moullethttp://www.blogger.com/profile/06947117799577904122noreply@blogger.com0