[geojquery] To plug in or not to plug in?
Milo van der Linden
milo at dogodigi.net
Sun Mar 14 06:35:42 EDT 2010
I am not sure I have a clear view of the focus for the geojquery
project, but this is my perspective:
Creating a full swing browser GIS that mimics the capabilities of a
desktop GIS is in my personal opinion *stupid*. I see a lot of those
nowadays, but the most successful webgisses focus on user experience
rather than bringing GIS to the browser. I prefer joining up with
user-experience experts and graphical designers when creating solutions.
As far as I am concerned, I am looking for the following options in
geojquery:
- A simple integration of a map object in the jquery api
- using the jquery api to enhance getlegendgraphics, getcapabilities or
getfeatureinfo requests
As for the rest; I have no need at all for geojquery to hand me a GUI. I
am perfectly capable at (and want the freedom to) create eye-candy gui's
tailor made for customer needs.
Just van den Broecke wrote:
> Hi All,
>
> I have been pondering on the same question. I am a fan of both JQuery
> (JQ) and OpenLayers (OL). IMHO both are top-notch products when it
> comes to elegance of design and usage. As all software is about
> abstraction, both JQ and OL are abstracting their respective target
> domains, JQ: the DOM and its manipulation, OL: components around
> web-mapping/geospatial, both visual e.g. maps, and non-visual e.g.
> back-end services (OGC/non-OGC). Also, each has its own software
> design-paradigm, OL: object-based/oriented and JQ DOM-oriented,
> functional almost Lisp-like. Both have extensibility options, JQ by
> design, like plugins and OL through "standard" OO-(sub)classing.
>
> How shall the twain meet (to quote from another British writer) ?
> Unless our application is just a map with some layers, OL is
> sufficient, but IRL we have to provide a full-blown web-client with
> both geospatial and non-geospatial gui/application features (or
> "business" and "mapping", dependent on your POV). A single
> all-encompassing framework with a single API seems compelling...
>
> Several of these libraries, both in the past and currently, have been
> attempted or are arising. Possibly you have heard about (Community)
> MapBuilder, http://communitymapbuilder.org (CMB). CMB is not just a
> mapping library, but a complete/extensible Ajax-framework designed
> around the Model-View-Controller design-pattern. So basically CMB
> could be our framework. CMB was probably ahead of its time and the
> JS-engines/bandwidths of those days (<2006), but I think somewhere in
> 2006 OL emerged and took off like a comet, IMO also as a more
> accessible/understandable/lightweight alternative to CMB (check). But
> then later OL by itself appeared not to be sufficient as a complete
> client-framework, so several attempts emerged to go again for the
> "all-encompassing": hence emerged GeoExt (http://geoext.org), to
> combine a framework (ExtJS) and a library (OL) using mainly ExtJS's
> paradigm to extend new services/datastores/widgets.
>
> I don't know exactly the audience on this list (I got here through
> Arnulf's tweet) but appearently there is a need (like with me) to
> combine the best of both JQ and OL in functionality, "weight" (e.g.
> for mobile webclients), extensibility, "graspability" and possibly OSS
> licensing policies. The problem is the design-paradigm to use: OL as
> JQ-plugin is one candidate.
>
> So back to Oliver's question, I think he is making a very valid point,
> and I would like to add: IMHO a JQ plugin will add another
> layer/wrapper around OL for ease-of-use without adding functional
> value. This may be of use for a particular group of developers that
> need easy access to web-mapping. Libraries like
> http://www.mapstraction.com may cater for that. I am still
> seeking/hoping for a JQ+OL approach that is at least the sum of its
> parts. That is why I was happy to see the BOF and this list emerging.
> Given past and present I think it is good to do upfront brainstorms
> and pose questions like Oliver's before embarking into development.
>
> To add some thoughts: when I first used OL in 2007, I saw its design
> as an prime example of "JavaScript done right". At some point I played
> with the idea to have OL as the basis of a full blown Ajax framework,
> possibly even wrapping JQ when it comes to DOM-manipulation. This idea
> is probably too far-fetched. JQ presents the NKOTB, state-of-the-art
> JavaScript, OL uses parts from JQ's predessor Prototype.js, so going
> with the JQ paradigm seems the way to go. Ultimately one could think
> of a rewrite of OL according to JQ-plugins. This again will tie OL too
> much to a single JS-framework. Maybe a form of automated code
> transformation/generation from an OL core code base to
> JQ-plugins/ExtJS/.. even Java/Flex/Flash (generating OpenScales!)
> could be possible...
>
> My $2ct, best,
>
> --Just
>
> Just van den Broecke
> The Netherlands
> http://www.justobjects.nl
>
> Oliver Tonnhofer wrote:
>> Hi everyone,
>>
>> I was playing with the jQuery plugin idea and I am not really sure if
>> a plugin is the right way for doing this.
>>
>> All existing jQuery plugins are - more or less - just playing with
>> DOM objects. Hide that, fade this in, add this event, etc. But we
>> want to work with another library, we don't need access to the DOM
>> elements where we added our maps, we need access to the actual map
>> object (OpenLayer or our own geojquery map objects).
>>
>> I don't see how this can be implemented in an elegant way when we
>> just want to write a plugin.
>> Let me give you an example with some code I have[1]:
>>
>> $('#map').map({
>> size: [400, 400],
>> zoom: 7,
>> center: [8.19884, 53.1495],
>> layers: [$.map.tms({host:"http://osm.omniscale.net/proxy/tiles/",
>> layer:"osm_EPSG900913"})]
>> });
>>
>> Pretty simple. I just created a map inside the #map element. But how
>> do I interact with the map? $('#map') gives me a jQuery object where
>> I can manipulate all attributes from the DOM object, but not the
>> actual map. We can add the OpenLayers map or some geojQuery object as
>> .data() to the element, but $('#map').data('map').center(lonlat) is
>> rather quirky.
>>
>> One solution would be to add another jQuery method for everything we
>> intend to do with our map.
>>
>> $('#map').center(lonlat);
>> $('#map').add_layer(...);
>>
>> That would work, but it would also pollute the $-namespace. PHP
>> developers might like that but I'm strongly against that. ;)
>>
>> Maybe I'm missing something, please enlighten me :)
>>
>> [1] http://bitbucket.org/olt/geojquery-playground/src/
>>
>> Regards, Oliver
>>
>
> _______________________________________________
> Geojquery mailing list
> Geojquery at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/geojquery
>
More information about the Mapquery
mailing list