Hy!

I writing a plugin for Pmapper. I have a question about it. This is 
looks like the coordinates plugin,.. i click,then its display some results.

In this case, i want to get the clicked shapes ID column value (this is 
not a shapefile ID or something like this, this is a custom ID column i 
made for the table)

$shape-> values['ID'] contains nothing, empty string.I checked it (with 
echo). By the way the SOAP call returns a error code 5001, it mean that 
something is wrong. So because it only get an empty ID string..

Why i get empty ID? is this code correct i paste?

This is the code i writing:

This will pass the $DempontJson  to the Javascript file

        <?php
        // prevent XSS
        if (isset($_REQUEST['_SESSION'])) exit();

        session_start();
        require_once($_SESSION['PM_INCPHP'] . "/globals.php");
        require_once($_SESSION['PM_INCPHP'] . "/common.php");

        ini_set("soap.wsdl_cache_enabled", 0);

        $layer = $map->getLayerByName('sde1','sde2','sde3','sde4');

        // xy pix -> geo pt

        $xPixel = $_REQUEST['x'];
        $yPixel = $_REQUEST['y'];

        $xGeo = $_SESSION['GEOEXT']['minx'] +
        (($xPixel/$_SESSION['mapwidth']) *
        ($_SESSION['GEOEXT']['minx']-$_SESSION['GEOEXT']['maxx']));
        $yGeo = $_SESSION['GEOEXT']['maxy'] -
        (($yPixel/$_SESSION['mapheight']) *
        ($_SESSION['GEOEXT']['maxy']-$_SESSION['GEOEXT']['miny']));

        $pt = ms_newPointObj();
        $pt->setXY($xGeo, $yGeo);

        // proj
        $mapProjStr = $map->getProjection();
        $layerProjStr = $layer->getProjection();
        if ($mapProjStr && $layerProjStr && $mapProjStr != $layerProjStr) {
             $mapProjObj = ms_newprojectionobj($mapProjStr);
             $layerProjObj = ms_newprojectionobj($layerProjStr);
             $pt->project($mapProjObj, $layerProjObj);
        }

        // set map extent and size:
        $map->setExtent($_SESSION['GEOEXT']['minx'],
        $_SESSION['GEOEXT']['miny'], $_SESSION['GEOEXT']['maxx'],
        $_SESSION['GEOEXT']['maxy']);
        $map->setSize($_SESSION['mapwidth'], $_SESSION['mapheight']);

        $map->preparequery();

        // Use '@' to avoid warning if query found nothing
        @$layer->queryByPoint($pt, MS_SINGLE, -1);
        $pt->free();

        if ($layer->getNumResults() == 1) {
             $res = $layer->getResult(0);
             $layer->open();
             $shape = $layer->getFeature($res->shapeindex, $res->tileindex);
             $id = $shape->values['ID'];
             $layer->close();
        }

        try{
           $sClient = new SoapClient('http://IP:PORT/some?wsdl');
           $resp = $sClient->Dempont_fh_rtid(array($id));

        } catch(SoapFault $e){
           var_dump($e);
        }

        $dempont = round($resp);

        $DempontJson = "[";
        $DempontJson .= "{\"dempont\": $dempont,";
        $DempontJson = substr($DempontJson, 0, -1) . "]";


        header("Content-Type: text/plain; charset=$defCharset");

        // return JS object literals "{}" for XMLHTTP request

        echo "{\"DempontJson\": $DempontJson}";

        ?>

The JS file:

            ...

             Dempont:
             {
                 options: {css:{width:280}},

                 /*
                  * Dempont megjelenitö fv.
                  */
                 openDempontBox: function(imgxy) {
                     var pixccoords = imgxy.split('+');
                     var pixX = pixccoords[0];
                     var pixY = pixccoords[1];

                     var mpoint = PM.ZoomBox.getGeoCoords(pixX, pixY,
        false);

                     $.ajax({
                         url: PM_PLUGIN_LOCATION +
        '/dempont/x_dempont.php?' + SID + '&x=' + mpoint.x + '&y=' +
        mpoint.y,
                         dataType: "json",
                         success: function(response){
                             var res = response.DempontJson;
                             var restab = $('<table>');
                             $.each(res, function(i, n){
                                
        restab.append(($('<tr>').append($('<td>').html('Érték: ' +
        n.dempont))));
                             });
                             var container =
        $('#pmPluginCoordsDisplay').is(':visible') ?
                                 $('#pmPluginCoordsDisplay') :
                                 $('<div>').id('pmPluginCoordsDisplay')
                                           .addClass('pm-map-link')
                                          
        .addClass('pm-coordinates-dialog')
                                          
        .css(PM.Plugin.dempont.options.css)
                                           .appendTo('.ui-layout-center');

                             container.html('')
                                      .html(_p('Dempont'))
                                      .append(restab)
                                      .append($('<img
        src="images/close.gif" alt="close" />').click(function ()
        {$(this).parent().remove();}).css('cursor','pointer'))
                                      .show();
                         },
                         error: function(XMLHttpRequest, textStatus,
        errorThrown) {
                             alert('Hiba, Nem számolok neked!');
                         }
                     });
                 }
             }
        });

It is always jumps to the error:function(XML Http.....) :(


Thanks,
Zsolt
------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
pmapper-users mailing list
pmapper-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pmapper-users

Reply via email to