Kopie des alten Systems

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.

Wechseln zu: Navigation, Suche

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'}
Persönliche Werkzeuge