GOV/Webservice/PHP
< 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'}