2016-04-06 5 views
0

Ich versuche, einen Knoten, den ich zuvor erstellt habe, über die OSM PHP API zu aktualisieren. Ich habe einige Funktionen entwickelt, die einige CRUD-Operationen mithilfe der Open Street Map-API ausführen. Ich mache über diese URL /api/0.6/node/#idSo aktualisieren Sie einen Knoten über OpenStreetMap PHP Api

$ls_url_update_node = $this->get_api()->get_base_url() . "/api/0.6/node/".$this->get_id(); 
    $lo_requete = Request::put($ls_url_update_node); 

    $ls_xml_node = $this->generate_xml($po_changeset); 

    $lo_requete = Request::put($ls_url_update_node) 
     ->sendsType('text/xml') 
     ->addHeader('Authorization', $this->get_api()->get_authorization_header()) 
     ->body($ls_xml_node); 
    $lo_response = $lo_requete->send(); 

Die genarate_xml Funktion versuchen, eine gültige XML, dass die Achtung eine Put-Anfrage zu erzeugen

Meine Update-Funktion des Knotens und der Changeset-ID wird immer diese Operation zu machen, dann die OSM-Spezifikationen.

<osm> 
<node id="123" lat="..." lon="..." version="142" changeset="12" user="fred" uid="123" visible="true" timestamp="2005-07-30T14:27:12+01:00"> 
    <tag k="note" v="Just a node"/> 
    ... 
</node> 
</osm> 

Das OSM Api gibt diese Fehlermeldung zurück: Kann gültigen Knoten aus XML-Zeichenfolge nicht analysieren. Mayeb habe ich einige Unterschiede zwischen der Erstellung und der Aktualisierung eines Knotens übersprungen. Also bitte jede Hilfe.

+0

Bitte zeigen Sie uns ein vollständiges Beispiel einer XML-Datei, die Sie senden möchten. – scai

Antwort

0

Sie müssen Ihre Anfrage an /api/0.6/changeset/create senden. Außerdem muss es ein <changeset> Element enthalten. Bitte beachten Sie die API documentation for creating changesets.

Das Hinzufügen von Elementen erfolgt durch Senden an /api/0.6/[node|way|relation]/create, siehe API documentation for creating elements. Dort müssen Sie einen zuvor geöffneten Änderungssatz referenzieren.

Wenn Sie immer noch auf Probleme stoßen, ist es vielleicht eine gute Idee, einen der beliebten OSM-Editoren zu verwenden und sich ihre Anfragen/Antworten über wireshark oder ein ähnliches Programm anzusehen.

+0

Hier die XML '>' – KubiRoazhon