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?
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?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 177077
Url: https://administrator.de/contentid/177077
Ausgedruckt am: 22.11.2024 um 09:11 Uhr
8 Kommentare
Neuester Kommentar
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
*/
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.
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.
gosmoreData.php
holt die Daten und gibt sie JSON Codiert aus
gosmoreView.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
<?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 ) )
);
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>
PS: die Abfrage der Daten dauert hin und wieder etwas - das kann also paar sek. dauern bis das alert() kommt
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 )