{"id":64,"date":"2007-04-23T19:02:26","date_gmt":"2007-04-24T00:02:26","guid":{"rendered":"http:\/\/www.kralidis.ca\/blog\/2007\/04\/23\/my-mapserver-wishlist\/"},"modified":"2007-04-23T19:02:26","modified_gmt":"2007-04-24T00:02:26","slug":"my-mapserver-wishlist","status":"publish","type":"post","link":"https:\/\/www.kralidis.ca\/blog\/2007\/04\/23\/my-mapserver-wishlist\/","title":{"rendered":"My MapServer Wishlist"},"content":{"rendered":"<p>I&#8217;ve been working with <a href=\"http:\/\/mapserver.gis.umn.edu\/\" title=\"MapServer\">MapServer<\/a> since 2000.  In October 2006, I was <a href=\"http:\/\/www.nabble.com\/forum\/ViewPost.jtp?post=6887433&amp;framed=y\" title=\"added as a committer\">added as a committer<\/a> to the codebase.  Since then, I&#8217;ve been working on mainly OGC support and Perl mapscript type issues.  After a few months, here are some things which I would like to see at some point in MapServer from a developer&#8217;s point of view.<\/p>\n<p>1.\/ libxml2 support: it would be of benefit to MapServer to have XML support taken care of by libxml2.  Currently, MapServer uses msIO_printf, which, while functional, is <a href=\"http:\/\/trac.osgeo.org\/mapserver\/ticket\/2070\" title=\"prone to XML errors\">prone to XML errors<\/a> in particular when outputting XML.  libxml2 takes care of closing tags, quoting attributes, namespaces, schemas, and a slew of other functionality.  Also, coding MapServer XML in libxml2 allows for extensibility (e.g. applying a stylesheet via mapfile configuration).<\/p>\n<p>2.\/ Better organized codebase: something like:<\/p>\n<ul>\n<li>mapserver\/\n<ul>\n<li>etc\/<\/li>\n<li> core\/<\/li>\n<li> formats\/<\/li>\n<li>mapscript\/<\/li>\n<li> ogc\/<\/li>\n<li> tests\/<\/li>\n<li> util\/<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>3.\/ subversion: It&#8217;s nice to see MapServer move towards a shared infrastructure like <a href=\"http:\/\/www.osgeo.org\/\" title=\"OSGeo\">OSGeo<\/a>&#8216;s and leverage <a href=\"http:\/\/trac.edgewall.com\/\" title=\"trac\">trac<\/a> for <a href=\"http:\/\/trac.osgeo.org\/mapserver\" title=\"issue tracking\">issue tracking<\/a>.  Already an improvement over bugzilla, trac also plays nice with <a href=\"http:\/\/subversion.tigris.org\/\" title=\"subversion\">subversion<\/a>.  So hopefully it will just be a matter of time before the codebase gets ported from CVS.<\/p>\n<link rel=\"stylesheet\" href=\"http:\/\/cdn.leafletjs.com\/leaflet-0.5\/leaflet.css\" \/>\n<!--[if lte IE 8]>\n  <link rel=\"stylesheet\" href=\"http:\/\/cdn.leafletjs.com\/leaflet-0.5\/leaflet.ie.css\" \/>\n<![endif]-->\n<script src=\"http:\/\/cdn.leafletjs.com\/leaflet-0.5\/leaflet.js\"><\/script>\n<style type=\"text\/css\">#map64 { width: 300px; height: 200px; }<\/style>\n\n<div id=\"map64\"><\/div>\n<script type=\"text\/javascript\">\n  var map64 = L.map('map64').setView([44.974165, -93.232706], 10);\n  L.tileLayer('http:\/\/{s}.tile.osm.org\/{z}\/{x}\/{y}.png', {\n      attribution: '&copy; <a href=\"http:\/\/osm.org\/copyright\">OpenStreetMap<\/a> contributors'\n  }).addTo(map64);\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve been working with MapServer since 2000. In October 2006, I was added as a committer to the codebase. Since then, I&#8217;ve been working on mainly OGC support and Perl mapscript type issues. After a few months, here are some things which I would like to see at some point in MapServer from a developer&#8217;s [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,7,3],"tags":[],"class_list":["post-64","post","type-post","status-publish","format-standard","hentry","category-geospatial","category-open-source","category-technology"],"_links":{"self":[{"href":"https:\/\/www.kralidis.ca\/blog\/wp-json\/wp\/v2\/posts\/64","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kralidis.ca\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kralidis.ca\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kralidis.ca\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kralidis.ca\/blog\/wp-json\/wp\/v2\/comments?post=64"}],"version-history":[{"count":0,"href":"https:\/\/www.kralidis.ca\/blog\/wp-json\/wp\/v2\/posts\/64\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.kralidis.ca\/blog\/wp-json\/wp\/v2\/media?parent=64"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kralidis.ca\/blog\/wp-json\/wp\/v2\/categories?post=64"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kralidis.ca\/blog\/wp-json\/wp\/v2\/tags?post=64"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}