![]() |
Dies ist eine alte Kopie des GenWiki und spiegelt den Stand vom 8. Mai 2022 wider. This is an old copy of the GenWiki and reflects the status as of May 8, 2022. Please visit us at wiki.genealogy.net |
GOV/Webservice/PHP
aus GenWiki, dem genealogischen Lexikon zum Mitmachen.
< GOV | Webservice
Inhaltsverzeichnis |
Position ausgeben
Dieses Skript gibt den (ersten) Namen und die Position des Ortes aus:
<?php $readclient = new SoapClient('http://gov.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"; ?>
Position setzen
So setzt man die Position eines Objektes:
<?php $readclient = new SoapClient('http://gov.genealogy.net/services/SimpleService?wsdl'); $writeclient = new SoapClient('http://gov.genealogy.net/services/ChangeService?wsdl'); $place =$readclient->getObject('SCHERGJO54EJ'); $place->position->lat=54.3936; $place->position->lon=10.3707; $writeclient->saveObject($place,'5000','5000'); ?>
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( $checkedId == '' ) { echo "$id is invalid.\n"; } else { echo "$id has been replaced with $checkedId.\n"; } ?>
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.genealogy.net/services/SimpleService?wsdl'); // 18 = Gemeinde, 95 = kreisfreie Stadt, 150 = Stadt, 145 = Markt $list = $client->searchDescendantsByTypeAtDate($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"; } ?>
Optimierte Version, die den passenden Namen lokal bestimmt und so nur einen Bruchteil der Zeit des obigen Skripts benötigt. Dazu werden die PHP-Klassen GovTools.php und GovTimespan.php benötigt.
<?php require_once('GovTools.php'); $county = 'adm_131058'; // Rendsburg-Eckernförde (Schleswig-Holstein) $today = unixtojd(); // Julianisches Datum $client = new SoapClient('http://gov.genealogy.net/services/ComplexService?wsdl'); // 18 = Gemeinde, 95 = kreisfreie Stadt, 150 = Stadt, 145 = Markt $list = $client->searchDescendantsByTypeAtDate($county,'18,95,150,145',$today); $countyname = $client->getNameAtDate($county, $today,'deu'); echo "== Gemeinden und Städte in $countyname == \n"; $names = array(); foreach($list->object as $place) { $names[$place->id] = GovTools::getName( $place, $today, 'deu' ); } asort ($names); foreach ($names as $id => $name) { echo "* [[$id|$name]]\n"; } ?>
Es werden maximal 500 Objekte ausgegeben.
Hinweise
Auf Objektnamen mit Minuszeichen kann folgendermaßen zugegriffen werden:
$place->{'postal-code'}
Kategorie: GOV-Intern