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-ID: 177077

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

Ausgedruckt am: 22.11.2024 um 09:11 Uhr

dog
dog 30.11.2011 um 17:22:10 Uhr
Goto Top
SimpleXML z.B.
nxclass
nxclass 01.12.2011 um 08:56:31 Uhr
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
admin-lif
admin-lif 01.12.2011 um 10:10:07 Uhr
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...
nxclass
nxclass 01.12.2011 um 13:55:17 Uhr
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.
admin-lif
admin-lif 05.12.2011 um 12:07:44 Uhr
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?
nxclass
nxclass 05.12.2011 um 15:48:33 Uhr
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
admin-lif
admin-lif 08.12.2011 um 14:18:03 Uhr
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?
nxclass
nxclass 08.12.2011 um 21:29:26 Uhr
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 )