[Chameleon] tiff hang

Yewondwossen Assefa assefa at dmsolutions.ca
Wed Dec 8 15:06:59 EST 2004


Thanks for testing.

AFAIK, the changes would only affect the Query widget if it is used with 
the parameters  HIGHLIGHTRESULTS and PERSISTENTRESULTS.  Maybe Paul can 
comment on other widgets that I may have overlooked.

  As for the drawmap.php, It does several functionnalities (every thing 
drawn in chamelon like map, scalebar, keymap) pass trough that function. 
The idea behind it is that if you assigning a URL to the image source 
(http::../drawmap.php?...), the main application page does not need to 
wait for the map to be drawn to load completly and thus It is supposed 
to give a better "smooth" looking apps.

  Your are the 2nd person who tried this solution and reported that the 
application was faster considerably. When using the drawmap.php method, 
there is a time cost associated with calling the server, loading the 
session and then drawing the map. I would have imagined that this 
solution would improve the rendering time slightly (since session 
loading and call to the server are cut) but I am surprised a bit to know 
that It has considerable effect since I always thought that the main 
bulk of the time is taken by the map drawing.  I guess a good profiling 
might give us a better understanding.

  Anyhow I entered a bug 893 on this :


Ken-ichi wrote:

> Wow, not only did that solve my problem, but it increased map rendering 
> speed considerably, even with no TIFFs!  Thanks, Assefa and Paul.  
> Adding a flag in the widget tag to do this would be really helpful.  Are 
> there any widgets that don't work with this adjustment, i.e. can I alter 
> our "production" copy of Chameleon and expect other Chameleon projects 
> on the server to work ok?  What exactly is the purpose of drawmap.php 
> anyway?
> Thanks again.
> -Ken-ichi
> Yewondwossen Assefa wrote:
>> The changes are minmal : here is what I did :
>>   1) MapDHTML.widget.php : in function GetJavascriptVariables (around 
>> line 468) :
>>    comment the 3 lines and add the 3 additional lines :
>>      //$url = 
>> WEBCOMMON."/wrapper/drawmap.php?map_session_mode=$nMapSessionMode&run_query=0&".SID.$szFatalImage; 
>>         //if (!$bCWCJSAPI)
>>         //$url .= "&dummy=".urlencode(microtime());
>>         $oMap = $this->moMapObject->oMap;
>>         $img = $oMap->draw();
>>         $url = $img->saveWebImage();
>>   2) in MapDHTML.js : function MapLayerDivImgOnLoad
>>     comment the line : //url = url + "&UniqId="+unique;
>> Please give it a try and let me know.
>> Paul, I think we can easily make this a configurable thing as far as 
>> mapdhtml is concerned. I think there might be a problem though with 
>> the new query widget that diplays the selected element (and keep the 
>> selection persitently) but It can also be solved with few changes.
>> What I propose is that Ken do the tests and if it solves his problem, 
>> I will enter an enhancement bug on this with the changes required and 
>> we can implement it after that.
>> Later,
>> Paul Spencer wrote:
>>> Ken,
>>> this is very strange.  Chameleon is not aware of the image formats of 
>>> the underlying data, it just uses mapscript to do the drawing.
>>> Another solution to this problem may be to have the MapDHTML widget 
>>> render the map to a file and then load the image source in the page 
>>> rather than use drawmap.php.
>>> We did this for another client who was having a strange problem with 
>>> images half loading due to some sort of firewall problem (only in IE 
>>> strangely).
>>> I've cc'd Assefa since he was the one who sorted that out.  Assefa, 
>>> can you post the solution to getting MapDHTML to render to a file?  
>>> Do you think we could make this a configurable parameter in the 
>>> MapDHTML widget (like DELAYDRAW="[true|false]" or something)?
>>> Cheers,
>>> Paul
>>> Ken-ichi wrote:
>>>> Thanks Paul.  I tried loading drawmap.php directly, and that usually 
>>>> renders the map even when the Chameleon app hangs (though sometimes 
>>>> it hangs too), so I guess drawmap.php may not actually be the 
>>>> culprit.  I made another, minimal app with just the ZoomIn, ZoomOut, 
>>>> Recenter, and MapDHTML widgets, and it still hangs on the tiffs, so 
>>>> I don't think it's any of my custom widgets that are mucking things 
>>>> up either.
>>>> I am really at a loss here.  The strangest thing about this is that 
>>>> if I convert the TIFF to an Erdas Imagine file (either in Erdas or 
>>>> with gdal_translate) everything works fine.  What is it about tiffs 
>>>> that could possibly hang up Chameleon?  Why would Chameleon even be 
>>>> aware of input file format?  Don't MapServer and GDAL handle that?  
>>>> I know they're fine because a non-Chameleon phpMapScript app renders 
>>>> the map fine, as does the CGI.
>>>> Argh.
>>>> -Ken-ichi
>>>> Paul Spencer wrote:
>>>>> Ken,
>>>>> to debug drawmap.php, you need to grab the URL from the image in 
>>>>> the chameleon app and load it directly in your browser.  You should 
>>>>> then see any error messages or debug output directly.  Often, 
>>>>> problems with a broken map image are related to error messages (or 
>>>>> notices) being output before the image contents, thus creating a 
>>>>> corrupt image.
>>>>> If nothing shows up immediately on viewing the drawmap.php url, you 
>>>>> can then start to add some debugging code (echo) to drawmap.php to 
>>>>> try to discover what is going on.
>>>>> Cheers,
>>>>> Paul
>>>>> Ken-ichi wrote:
>>>>>> Hi list.  A while ago I posted an issue I'd been having with 
>>>>>> rendering TIFFs in Chameleon 
>>>>>> (http://lists.maptools.org/pipermail/chameleon/2004-August/thread.html#1245), 
>>>>>> but I never really resolved it.  Essentially, whenever I zoom in 
>>>>>> on a GeoTIFF so that the TIFF fills the whole map, Chameleon hangs 
>>>>>> and never displays the map image (I just get the spinner icon 
>>>>>> indefinitely and then a broken image icon behind it.  Try zooming 
>>>>>> in on the DRG (Test Raster) at
>>>>>> http://fisher.cnr.berkeley.edu/vtm/data/mapbrowse/
>>>>>> to see what I'm talking about.  I'm fairly sure this is a 
>>>>>> Chameleon issue, most likely with drawmap.php, because this 
>>>>>> mapfile renders just fine via the CGI, and with a rudimentary 
>>>>>> phpMapScript app like this one:
>>>>>> http://fisher.cnr.berkeley.edu/~kueda/mapscript_browse.phtml
>>>>>> The DRG is a 16M GeoTIFF from the California Spatial Information 
>>>>>> Library, so I don't think it's to blame.  You can check out my php 
>>>>>> and MapScript config at
>>>>>> http://fisher.cnr.berkeley.edu/~kueda/phpinfo_mapscript.phtml
>>>>>> I'm running MapServer 4.4.0, GDAL 1.2.5, and PHP 4.3.9.  Can 
>>>>>> anyone think of a reason this could be happening, or recommend a 
>>>>>> way to troubleshoot drawmap.php?
>>>>>> -Ken-ichi
>>>>>> _______________________________________________
>>>>>> Chameleon mailing list
>>>>>> Chameleon at lists.maptools.org
>>>>>> http://lists.maptools.org/mailman/listinfo/chameleon
>>>> _______________________________________________
>>>> Chameleon mailing list
>>>> Chameleon at lists.maptools.org
>>>> http://lists.maptools.org/mailman/listinfo/chameleon
> _______________________________________________
> Chameleon mailing list
> Chameleon at lists.maptools.org
> http://lists.maptools.org/mailman/listinfo/chameleon

Assefa Yewondwossen
Software Analyst

Email: assefa at dmsolutions.ca

Phone: (613) 565-5056 (ext 14)
Fax:   (613) 565-0925

More information about the Chameleon mailing list