admin-lif
Goto Top

PHP bzw. KML mit Javascript verarbeiten

Hi,
glaube mein Problem ist hier noch nicht vorhanden, zumindest habe ich nichts gefunden.
Bin Javascript Neuling und es geht um folgendes:

Ich bin gerade dabei eine Browserapplikation mit Javascript zu erstellen, die Karten und darauf Routen anzeigt. Die Kartendarstellung funktioniert schon ganz gut (OpenLayers). Ich habe mir gedacht die Route über die YOURS API (http://wiki.openstreetmap.org/wiki/YOURS#API_documentation) abzufragen.
Eine Anfrage schaut Beispielsweise so aus: http://www.yournavigation.org/api/1.0/gosmore.php?format=kml&flat=5 ...
Also wenn man mal die genannte URL im Browser eingibt, wird ein durch PHP generiertes KML Dokument angezeigt bzw man bekommt KML zurück.
Ich möchte nun auf <coordinates> zugreifen und weis leider nicht wie.

Kann mir jemand helfen?

Content-Key: 177077

Url: https://administrator.de/contentid/177077

Printed on: April 26, 2024 at 05:04 o'clock

Member: dog
dog Nov 30, 2011 at 16:22:10 (UTC)
Goto Top
SimpleXML z.B.
Member: nxclass
nxclass Dec 01, 2011 at 07:56:31 (UTC)
Goto Top
SimpleXML z.B.
.. soll heißen:
  $url = 'http://www.yournavigation.org/api/1.0/gosmore.php?format=kml&flat=52.215676&flon=5.963946&tlat=52.2573&tlon=6.1799&v=motorcar&fast=1&layer=mapnik';  
  $simpleXmlObject = simplexml_load_file( $url );
/*
  $simpleXmlObject-> // hier geht es weiter
*/
... übrigens, das ist PHP Code
Member: admin-lif
admin-lif Dec 01, 2011 at 09:10:07 (UTC)
Goto Top
ok... php hab ich leider noch nie was gemacht... kann ich dass dann einfach mit <?php ?> in meinen javascript code einbauen? Wie greife ich von Javascript aus auf das simplexmlobject zu?
achja und die koordinaten in der url sind jedesmal anders, d.h. es müsste mit variablen in der url gearbeitet werden...
Member: nxclass
nxclass Dec 01, 2011 at 12:55:17 (UTC)
Goto Top
PHP ist eine Server seitige Script Sprache.

Du kannst es auch in Javascript machen, das wird aber etwas schwerer.
Du müsstest dann die Daten von der URL am besten per Ajax laden und in eine Objekt Struktur umwandeln, um dann die Koordinaten raus zu ziehen und in Karte ein zu tragen. Schau Dir mal JQuery ( http://api.jquery.com/jQuery.ajax/ ) dazu an.
Member: admin-lif
admin-lif Dec 05, 2011 at 11:07:44 (UTC)
Goto Top
Zitat von @nxclass:
PHP ist eine Server seitige Script Sprache.

Du kannst es auch in Javascript machen, das wird aber etwas schwerer.
Du müsstest dann die Daten von der URL am besten per Ajax laden und in eine Objekt Struktur umwandeln, um dann die
Koordinaten raus zu ziehen und in Karte ein zu tragen. Schau Dir mal JQuery ( http://api.jquery.com/jQuery.ajax/ ) dazu an.


Hab mich mal in die Sache bisschen eingelesen und Foren durchsucht, leider erhalte ich bei der Antwort immer eine Fehler. Hab auch gelesen, dass das mit eine fremden URL gar nicht kann.
Kannst du evtl ein Beispiel posten wie das laufen soll?
Member: nxclass
nxclass Dec 05, 2011 at 14:48:33 (UTC)
Goto Top
gosmoreData.php
<?php
set_time_limit(3600);
$url = 'http://www.yournavigation.org/api/1.0/gosmore.php?format=kml&flat=52.215676&flon=5.963946&tlat=52.2573&tlon=6.1799&v=motorcar&fast=1&layer=mapnik';   
$simpleXmlObject = simplexml_load_file( $url );
echo json_encode(
    explode("\n", trim( $simpleXmlObject->Document->Folder->Placemark->LineString->coordinates ) )  
);
holt die Daten und gibt sie JSON Codiert aus

gosmoreView.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
<title>Insert title here</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>  
<script type="text/javascript">  
$(document).ready(
	function()
    {
		$.ajax( {
			url: "gosmoreData.php",  
			success: function( data, textStatus, jqXHR )
			{
				// erzeugt eine Objekt mit den Koordinaten (komma getrennt)
			    var coordinates = JSON.parse(data);
			    
			    // hier dein Code zum erstellen der Linien
			    alert( data ); // DEBUG
			}
		} );
    }
);
</script>
</head>

<body>

</body>
</html>
holt die JSON Daten per Ajax und verarbeitet diese weiter

PS: die Abfrage der Daten dauert hin und wieder etwas - das kann also paar sek. dauern bis das alert() kommt
Member: admin-lif
admin-lif Dec 08, 2011 at 13:18:03 (UTC)
Goto Top
Hi,
das wird aber so nicht bei mir funktionieren, da die Anwendung lokal und nicht auf einem Server läuft. Kann ich nicht einfach die PHP Seite wie eine ganz normale HTML Seite durchlaufen?
Member: nxclass
nxclass Dec 08, 2011 at 20:29:26 (UTC)
Goto Top
wie eine ganz normale HTML Seite durchlaufen?
...sollte möglich sein. Man könnte zB. auf den Inhalt eines IFrames zugreifen.

( kann das jetzt leider nicht testen ... schau mal: http://de.selfhtml.org/javascript/objekte/frames.htm )