GOV/Webservice/PHP
aus GenWiki, dem genealogischen Lexikon zum Mitmachen.
< GOV | Webservice
Inhaltsverzeichnis |
[bearbeiten] Position ausgeben
Dieses Skript gibt den (ersten) Namen und die Position des Ortes aus:
<?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"; ?>
[bearbeiten] Position setzen
So setzt man die Position eines Objektes:
<?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'); ?>
[bearbeiten] GOV-Kennung prüfen
Dieses Skript prüft, ob eine gegebene GOV-Kennung gültig ist:
<?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"; } ?>
[bearbeiten] Alle Gemeinden und Städte eines Kreises ausgeben
<?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 "* [[$id|$name]]\n"; } ?>
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;
[bearbeiten] Hinweise
Auf Objektnamen mit Minuszeichen kann folgendermaßen zugegriffen werden:
$place->{'postal-code'}
