GOV/Webservice/PHP

aus wiki, dem genealogischen Lexikon zum Mitmachen.
Zur Navigation springen Zur Suche springen

Position ausgeben

Dieses Skript gibt den (ersten) Namen und die Position des Ortes aus: <php><?php $readclient = new SoapClient('http://gov-test.genealogy.net/services/SimpleService?wsdl'); $place =$readclient->getObject('SCHERGJO54EJ');

$name = $place->name->value; $latitude = $place->position->lat; $longitude = $place->position->lon;

echo $name ." liegt bei ".$longitude."°O ".$latitude."°N.\n"; ?></php>

Position setzen

So setzt man die Position eines Objektes: <php><?php $readclient = new SoapClient('http://gov-test.genealogy.net/services/SimpleService?wsdl'); $writeclient = new SoapClient('http://gov-test.genealogy.net/services/ChangeService?wsdl'); $place =$readclient->getObject('SCHERGJO54EJ');

$place->position->lat=54.3936; $place->position->lon=10.3707;

$writeclient->saveObject($place,'5000','5000'); ?></php>


GOV-Kennung prüfen

Dieses Skript prüft, ob eine gegebene GOV-Kennung gültig ist: <php><?php $id = 'SCHERGJO54EJ';

$readclient = new SoapClient('http://gov.genealogy.net/services/SimpleService?wsdl'); $checkedId =$readclient->checkObjectId($id);

if( $id == $checkedId ) {

       echo "$id is valid.\n";

} else if( $id == ) {

       echo "$id is invalid.\n";

} else {

       echo "$id has been replaced with $checkedId.\n";

} ?></php>

Alle Gemeinden und Städte eines Kreises ausgeben

<php><?php $county = 'adm_131058'; // Rendsburg-Eckernförde (Schleswig-Holstein)

$today = 2454665; // Julianisches Datum

$client = new SoapClient('http://gov-test.genealogy.net/services/SimpleService?wsdl');

// 18 = Gemeinde, 95 = kreisfreie Stadt, 150 = Stadt, 145 = Markt $list = $client->searchDescendantsByTypeYear($county,'18,95,150,145',$today);

$countyname = $client->getNameAtDate($county, $today,'deu'); echo "== Gemeinden und Städte in $countyname == \n";

$names = array(); foreach( $list->item as $id ) {

       $names[$id] = $client->getNameAtDate($id, $today,'deu');

}

asort ($names); foreach ($names as $id => $name) {

   echo "* $name\n";

}

?></php>

Analog in SAS (ohne Ausgabe)

FILENAME REQUEST  "c:\temp\request.xml";
FILENAME RESPONSE "c:\temp\response.xml";
%let operation=searchDescendantsByTypeYear;

data _null_;
   file request;
   input;
   _infile_ = resolve(_infile_);
   put _infile_;
   datalines4;
   <&operation xmlns="http://gov.genealogy.net/ws">
    <parentId xmlns="">adm_131058</parentId>
    <childTypes xmlns="">18,95,150,145</childTypes>
    <year xmlns="">2454665</year>
    </&operation>
;;;;
run;

proc soap in=REQUEST 
          out=RESPONSE
          url="http://gov.genealogy.net/services/SimpleService#wsdl"
    ;
run;

Hinweise

Auf Objektnamen mit Minuszeichen kann folgendermaßen zugegriffen werden: <php>$place->{'postal-code'}</php>