[fusion-dev] OpenLayers layer support (was [fusion-users] Fusion +
MapServer Function/Look Like MapGuide)
Paul Spencer
pspencer at dmsolutions.ca
Wed Jul 16 10:50:26 EDT 2008
Mike,
it may be useful to expose a setting in the Extension to control
baseLayer. Or more usefully a way to set any OpenLayers Layer
constructor properties through the ApplicationDefinition.
Is this possible?
Paul
On 16-Jul-08, at 9:28 AM, Mike Adair wrote:
> I'm starting to work on this again, so like Paul says, feedback
> would be very helpful. What I have so far, is that the
> ApplicationDefinition would define multiple Map elements in the
> MapGroup element like so:
>
> <MapGroup id="multimap" xsi:type="MapType">
> <Map xsi:type="MapGuideLayerType">
> <Type>MapGuide</Type>
> <SingleTile>true</SingleTile>
> <Extension>
> <ResourceId>Library://Samples/Sheboygan/Maps/
> Sheboygan1.MapDefinition</ResourceId>
> </Extension>
> </Map>
> <Map xsi:type="MapGuideLayerType">
> <Type>MapServer</Type>
> <SingleTile>true</SingleTile>
> <Extension>
> <MapFile>/ms4w/apps/gmap/htdocs/gmap75.map</MapFile>
> </Extension>
> </Map>
> </MapGroup>
>
> and the first one would become the baseLayer, the Type element would
> (in theory) accept any OpenLayers.Layer.* type and there would be a
> 1:1 mapping of OL layer properties in the <Extension> element. There
> remains some questions around the establishing a session and the
> LoadMap.php call for the various layer types and how to make it work
> for vector layers.
>
> I'll be setting up a sandbox for this work today.
>
> Mike
>
>
>
> Paul Spencer wrote:
>> It should be possible :) You will need to spend some quality time
>> with firebug probably, but in essence you can get access to the
>> OpenLayers.Map instance and then do whatever you want. I would
>> probably approach it like this:
>>
>> window.onload=function(){
>> Fusion.registerForEvent(Fusion.Event.FUSION_INITIALIZED,
>> fusionInitialized);
>> Fusion.registerForEvent(Fusion.Event.FUSION_ERROR, fusionError);
>> Fusion.initialize();
>> }
>>
>> function fusionError(eventId, error) {
>> console.log('Fusion Error: '+error.toString();
>> }
>>
>> function fusionInitialized(eventId) {
>> var map = Fusion.getWidgetById('Map'); // the id of the div
>> containing the map
>> var olMap = map.oMapOL;
>> var wms = new OpenLayers.Layer.WMS(/* parameters */);
>> olMap.addLayer(wms);
>> }
>>
>> You will probably run into difficulty with the whole baseLayer
>> thing in OpenLayers. By default, most tile-based layers want to be
>> base layers and you need to add isBaseLayer: false to the layer
>> options (4th arg to WMS layer, might be different in other layer
>> types).
>>
>> You can also start Fusion without a map loaded and inject a
>> baseLayer using this method, but then a whole bunch of things won't
>> really work - for instance a lot of widgets only get enabled after
>> a map has loaded.
>>
>> Some feedback on *how* this should work would be appreciated. If
>> you have a particular use case and would like to be able to set
>> things up in a particular way, that would be very useful to the
>> developers as we plan out exposing more OpenLayers stuff.
>>
>> Cheers
>>
>> Paul
>>
>> On 16-Jul-08, at 1:42 AM, David Percy wrote:
>>
>>> Paul, thanks for the explanation on the tiling.
>>>
>>> I've actually been waiting to use and contribute to Fusion until
>>> the tiling was in place, as we currently use kamap for our tiling
>>> engine for the US geological survey, and it really helps. We are
>>> just working with Mootools and Openlayers, but I'd be happier if
>>> we were contributing to an active project, like Fusion, since
>>> that's the open source spirit.
>>>
>>> Is there a way to "wire" the unsupported Openlayers layer types
>>> into a Fusion app? It doesn't seem like it should be too
>>> difficult, but I was worried about making things hard to migrate
>>> once the Fusion framework supports it.
>>>
>>> I'd appreciate any thoughts you (or others on the PSC) have on this.
>>> Cheers,
>>> Percy
>>>
>>> Paul Spencer wrote:
>>>> Hi Tim,
>>>> you can get a Fusion application to look essentially like that
>>>> application using mapserver. The tiling capability on the client
>>>> side is implemented by OpenLayers, so there is nothing magically
>>>> mapguide about it. However, there is no support in the
>>>> ApplicationDefinition to let you define a tiled mapserver layer.
>>>> We are working on supporting all the OpenLayers layer types
>>>> through the ApplicationDefinition for the 1.1 release but this
>>>> work has not yet been done.
>>>> Even when the necessary hooks in Fusion are available, you will
>>>> still need something on the server side to generate the tiles.
>>>> You can use mapserver to do this directly, but it is pretty
>>>> inefficient since mapserver will draw the same tile over and over
>>>> again. What you need is something that will cache tiles for you
>>>> and serve them from the cache if available. For this, we will be
>>>> recommending either the kaMap's tile.php or TileCache.
>>>> Cheers
>>>> Paul
>>>> On 14-Jul-08, at 4:22 PM, Nolte, Tim wrote:
>>>>> OK, I know this is probably wishful thinking. AS I've looked at
>>>>> the
>>>>> MapGuide live app gallery. And specifically the following demo:
>>>>>
>>>>> http://data.mapguide.com/mapguide/phpviewersample/ajaxviewersample.php
>>>>>
>>>>> I would like to get Fusion (1.0.6) functioning and looking like
>>>>> that
>>>>> demo but using UMN MapServer. Is this even possible? Something
>>>>> I'm also
>>>>> wondering about is the Tiled AJAX sample. Is the tiling something
>>>>> specific and built in to MapGuide? I'm assuming the tiling is
>>>>> something
>>>>> on the server side and nothing to do with Fusion?
>>>>>
>>>>> - Tim
>>>>>
>>>>> ----
>>>>> Timothy J Nolte - tnolte at ilpcs.com
>>>>> Network Planning Engineer
>>>>>
>>>>> iPCS Wireless, Inc.
>>>>> 4717 Broadmoor Ave, Suite G
>>>>> Kentwood, MI 49512
>>>>>
>>>>> Office: 616-656-5163
>>>>> PCS: 616-706-2438
>>>>> Fax: 616-554-6484
>>>>> Web: www.ipcswirelessinc.com
>>>>> _______________________________________________
>>>>> fusion-users mailing list
>>>>> fusion-users at lists.osgeo.org
>>>>> http://lists.osgeo.org/mailman/listinfo/fusion-users
>>>> __________________________________________
>>>> Paul Spencer
>>>> Chief Technology Officer
>>>> DM Solutions Group Inc
>>>> http://www.dmsolutions.ca/
>>>> _______________________________________________
>>>> fusion-users mailing list
>>>> fusion-users at lists.osgeo.org
>>>> http://lists.osgeo.org/mailman/listinfo/fusion-users
>>>
>>> --
>>> David Percy
>>> Geospatial Data Manager
>>> Geology Department
>>> Portland State University
>>> http://gisgeek.pdx.edu
>>> 503-725-3373
>>
>>
>> __________________________________________
>>
>> Paul Spencer
>> Chief Technology Officer
>> DM Solutions Group Inc
>> http://www.dmsolutions.ca/
>>
>> _______________________________________________
>> fusion-users mailing list
>> fusion-users at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/fusion-users
>>
__________________________________________
Paul Spencer
Chief Technology Officer
DM Solutions Group Inc
http://www.dmsolutions.ca/
More information about the fusion-dev
mailing list