GOV/Webservice/PHP

aus GenWiki, dem genealogischen Lexikon zum Mitmachen.
< GOV‎ • Webservice
Zur Navigation springen Zur Suche springen

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'}