[Mapserver-users] Mapserver and flash (fixed, but new problem)

Geoffrey Rowland geoffrey.rowland at noaa.gov
Thu Aug 21 16:02:40 EDT 2003


Okay, I finally figured out how to get the attribute data from the SWF 
file by using Element.  I understand much better now.

However, I am running into a new problem. 

I am using phpmapscript to generate the SWF file...

here is a section of my .map file

LAYER
  NAME states
  METADATA
    "DESCRIPTION" "States"
    "RESULT_FIELDS" "State_Name"
    "SWFDUMPATTRIBUTES" "State_Name"
  END
  TYPE POLYGON
  STATUS ON
  DATA states

if i use that, it works fine.

*however* , if i change it ever so slightly to include the population 
data in the SWFDUMPATTRIBUTES, it fails and says "failed to render 
layer"....this is what causes that error

LAYER
  NAME states
  METADATA
    "DESCRIPTION" "States"
    "RESULT_FIELDS" "State_Name,Pop1999"
    "SWFDUMPATTRIBUTES" "State_Name Pop1999"
  END
  TYPE POLYGON
  STATUS ON
  DATA states


just adding the Pop1999 field (which contains the population data in the 
attribute table).

Here is the entire .map file, maybe I am doing something wrong

#
# Start of map file
#
NAME "Pop"
STATUS ON
SIZE 600 600
EXTENT -178.227822 18.913826 -66.949831 71.38269
UNITS dd
SHAPEPATH "data"
IMAGECOLOR 255 255 255


#IMAGETYPE PNG

OUTPUTFORMAT
        NAME swf
        MIMETYPE "application/x-shockwave-flash"
        DRIVER swf
        IMAGEMODE PC256
        FORMATOPTION "OUTPUT_MOVIE=MULTIPLE"
      END

WEB
  HEADER us_header.html
  TEMPLATE temp.html
  FOOTER us_footer.html
  LOG wnvmapserver.log
  MINSCALE 1
  MAXSCALE 36335600
  IMAGEPATH "d:/Inetpub/maptest/swf/"
  IMAGEURL "http://192.168.100.10/maptest/swf/"
  METADATA
   WMS_TITLE "United States Data"
   WMS_ABSTRACT "This is a demonstration of using Mapserver ."
   WMS_ACCESSCONSTRAINTS none
 
   WMS_SRS "EPSG:4269"
  END # End Metadata
END # End Web

QUERYMAP
  SIZE 200 200
  STATUS ON
  STYLE HILITE
  COLOR 255 0 0
END


#
# Start of legend
#
LEGEND
  KEYSIZE 18 12
  LABEL
    TYPE BITMAP
    SIZE MEDIUM
    COLOR 0 0 89
  END
  STATUS ON
END

#
# Start of scalebar
#
SCALEBAR
  IMAGECOLOR 255 255 255
  LABEL
    COLOR 255 255 255
    SIZE tiny   
  END
  STYLE 1
  SIZE 80 2
  COLOR 255 255 255
  UNITS MILES
  INTERVALS 1
  TRANSPARENT TRUE
  STATUS TRUE
END

 


LAYER
  NAME states
  METADATA
    "DESCRIPTION" "States"
    "RESULT_FIELDS" "State_Name"
    "SWFDUMPATTRIBUTES" "State_Name"
  END
  TYPE POLYGON
  STATUS ON
  DATA states
 

CLASSITEM 'Pop1999'
NAME Pop1999
TEMPLATE us_pop.html
CLASS
  EXPRESSION ([Pop1999] > 0 and [Pop1999] < 2135252)
  COLOR 254 240 217
  OUTLINECOLOR 128 128 128
END

CLASS
  EXPRESSION ([Pop1999] >   2135251 and [Pop1999] < 4970311)
  COLOR 253 212 158
  OUTLINECOLOR 128 128 128
END

CLASS
  EXPRESSION ([Pop1999] > 4970310 and [Pop1999] < 9866640)
  COLOR 253 187 132
  OUTLINECOLOR 128 128 128
END

CLASS
  EXPRESSION ([Pop1999] > 9866639 and [Pop1999] < 20127338)
  COLOR 252 141 89
  OUTLINECOLOR 128 128 128
END

CLASS
  EXPRESSION ([Pop1999] >   20127337 )
  COLOR 227 74 51
  OUTLINECOLOR 128 128 128
END



END # end class
 
END # end layer


END # end Map File


see anything wrong?

Thanks,
Geoff

Geoffrey Rowland wrote:

> Okay, Thanks, I have made the function ElementSelected and can get the 
> LayerID,ShapeID, and Event.
>
> But I'm still at a loss how to get the SWFDUMPATTRIBUTES then?  lets 
> say my attribute is called Name.  how do I get the value using 
> ActionScript?
>
> Here is what I have so far (just doing this as a test)
>
> onClipEvent (load) {
>        loadMovieNum("state_layer_0.swf",1);
> }   onClipEvent(mouseDown) {
>    _level1.ElementSelected = function(lid,sid,ev){
>             trace("The Layer id is : " + lid);
>             trace("The Shape id is : " + sid);
>             trace("The event was : " + ev);
>    }
>        _level1.ElementSelected(LayerId,ShapeId,Event, Name)
> }
>
> Thanks,
> Geoff
>
> Yewondwossen Assefa wrote:
>
>> The way to do it is to use at a layer level a metadata called 
>> SWFDUMPATTRIBUTES. The value used for this metadata are the names of 
>> the attributes you want to export to the swf file. Please refer to 
>> section "How to configure the map file to export attributes"  and 
>> "Events and Highlights" in the document 
>> http://www2.dmsolutions.ca/mapserver/dl/FlashMapserverUserDoc.html
>>
>>  Once the attributes are exported to the swf file, when the user 
>> clicks on these objects, there is a mouse event which is triggered 
>> and makes an Action Script call to: _root.ElementSelecetd(LayerId, 
>> ShapeId, Event). The Flash application who want to receive these 
>> events should define the function ElementSelected and use the 
>> information receive to do actions like retrieving the attribute 
>> values from the specific SWF for the specified shape and display it.
>>
>>
>> Later,
>>
>> Geoffrey Rowland wrote:
>>
>>> I was playing around with this a bit the other day.  Is there a way 
>>> to identify features in the swf file?  for example if I am 
>>> displaying a county layer (from a shapefile), and I want to get the 
>>> names of the counties....is that possible using the swf output?
>>>
>>> Thanks,
>>> Geoff
>>>
>>>
>>> William A. Bronsema, C.E.T. wrote:
>>>
>>>> Lars-Göran,
>>>>
>>>> It is fairly easy to view the SWF output using actionscript.  Set 
>>>> the outputformat in the map file to the following:
>>>>
>>>>   OUTPUTFORMAT
>>>>     NAME swf
>>>>     MIMETYPE "application/x-shockwave-flash"
>>>>     DRIVER swf
>>>>     IMAGEMODE PC256
>>>>
>>>>     # the following line is used to output all layers in one swf
>>>>     FORMATOPTION "OUTPUT_MOVIE=SINGLE"
>>>>
>>>>     # the following line is used to output all layers individually
>>>>     #FORMATOPTION "OUTPUT_MOVIE=MULTIPLE"
>>>>   END
>>>>
>>>>
>>>> After mapserver has generated the temp swf file(s) you can use the 
>>>> "loadMovie" actionscript function to load the swf file into a 
>>>> pre-existing container.  For example, create a new swf file with a 
>>>> movie clip called "clip1" and add the following line in actionscript:
>>>>
>>>> loadMovie ( "http://url/to/swf/mymap.swf", "clip1" );
>>>>
>>>> I use PHP and php_mapscript to help manage the files on the fly and 
>>>> Flash to manage my actionscript.
>>>>
>>>> I hope this quick overview helps.
>>>>
>>>> Regards,
>>>> Bill
>>>>
>>>> Lars-goran Edholm wrote:
>>>>
>>>>> Hi!
>>>>> Does anybody have an example of using Mapserver with swf vector 
>>>>> output.
>>>>> How do i use the swf-actionscript file to view the layers?
>>>>>
>>>>>
>>>>>  Mvh
>>>>> Lars-Göran Edholm    tel 026/24 14 36
>>>>> 1:e byggnadsinspektör
>>>>> Bygg- och miljökontoret
>>>>> 811 80 Sandviken
>>>>> lars-goran.edholm at sandviken.se
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Mapserver-users mailing list
>>>>> Mapserver-users at lists.gis.umn.edu
>>>>> http://lists.gis.umn.edu/mailman/listinfo/mapserver-users
>>>>>
>>>>
>>>>
>>>
>>
>>
>

-- 
Geoffrey Rowland
Technical Officer
Climate Information Project
NOAA Research
Office of  Global Programs
http://www.cip.ogp.noaa.gov
Contractor, 
RGII Technologies, Inc., a Computer Horizons Company
http://www.rg2.com
Phone: 301-427-2089x186
Fax : 301-427-2082
geoffrey.rowland at noaa.gov

















More information about the mapserver-users mailing list