You are not logged in.

#501 2012-12-09 18:32:47

ligfietser
Member
Registered: 2008-10-09
Posts: 5,241
Website

Re: Webkaartje met Fietstags

noordfiets wrote:

Voor het IE probleem is de enige oplossing een proxy te gebruiken. Probeer eens uit te vinden wat je op mijndev wel en niet mag ( cgi scripts draaien, php of python )

Misschien als tijdelijke oplossing een waarschuwing vooraf aan IE gebruikers?
Probeer maar uit op http://mijndev.openstreetmap.nl/~ligfietser/fiets/test/

<p class="accent">
<!--[if IE]>
<script>
{
alert("Internet Explorer might not work, please use another browser!");
}
</script>
<![endif]-->
</p>

Of dat IE gebruikers automatisch geredirect worden naar Noordfiets' server?
Als ik naar de browser stats kijk zijn dat er 7 vandaag (8% van de bezoekers).

Offline

#502 2012-12-10 09:14:39

noordfiets
Member
From: Groningen stad
Registered: 2010-02-14
Posts: 843

Re: Webkaartje met Fietstags

Ook een optie, maar dan met <!--[if lt IE 10]>
Want IE10 ondersteunt CORS op de standaard manier en werkt wel.

Offline

#503 2012-12-10 09:32:39

Lambertus
Administrator
From: Apeldoorn (NL)
Registered: 2007-03-17
Posts: 3,269
Website

Re: Webkaartje met Fietstags

Mooi initiatief jong's. Helaas poepie druk op het werk en dus staan vrijwel alle OSM activiteiten tijdelijk in de ijskast, maar ik hoop even snel een bijdrage te kunnen leveren.

IE lijkt dus te bokken op een cross site call, de standaard oplossing hiervoor is een proxy, de mooiste oplossing een javascript/html truuk die in bijvoorbeeld tools als jQuery zit, maar met de standaard oplossing heb ik wat ervaring:
Alle AJAX aanvragen van de browser die naar een pagina buiten de mijndev site gaan moeten via een proxy op de mijndev site gestuurd worden. Zo'n proxy is een simpel (PHP) script dat de request parameters doorstuurt naar de eigenlijke pagina, het antwoord inleest en teruggeeft aan de browser. Het is een omweg maar het werk. Zoek je op 'cross site' en 'proxy' dan kom je hier genoeg voorbeelden van tegen maar met onderstaand script van phpfour.com heb ik goede ervaringen.

<?php

/**
 * Transport for Cross-domain AJAX calls
 *
 * This is an implementation of a transport channel for utilizing cross-domain
 * AJAX calls. This script is passed the data through AJAX along with two special
 * hidden field containing the action URL and the http method (GET/POST). It then  
 * sends the form fields to that URL and returns the response.
 *
 * @package		CrossDomainAjax
 * @category	CURL
 * @author		Md Emran Hasan <phpfour@gmail.com>
 * @author		Lambertus IJsseltein: security fix (allowed domains), flexible headers
 * @link		http://www.phpfour.com
 */

// The domains we're allowed to contact
$allowedDomains = array('http://gazetteer.openstreetmap.org/', 
					'http://nominatim.openstreetmap.org/', 
					'http://dev.openstreetmap.nl/', 
					'http://www.yournavigation.org/',
					'http://yournavigation.org/',
					'http://planetosm.oxilion.nl/',
					'http://osm.pleiades.uni-wuppertal.de/');

// The actual form action
$action = $_REQUEST['url'];

// Submission method
$method = $_REQUEST['method'];

// Query string
$fields = '';

// Check the url for allowed domains
$fail = true;
foreach ($allowedDomains as $domain)
{
    if (strpos(substr($action, 0, strlen($domain)), $domain) !== false)
    {
        $fail = false;
	break;
    }
}

if ($fail == true)
{
    exit("Domain name '".$action."' not allowed. Access denied.");
}

// Prepare the fields for query string, don't include the action URL OR method
if (count($_REQUEST) > 2)
{
    foreach ($_REQUEST as $key => $value)
    {
        if ($key != 'url' && $key != 'method')
        {
            $fields .= $key . '=' . rawurlencode($value) . '&';
        }
    }
}

// Strip the last comma
$fields = substr($fields, 0, strlen($fields) - 1);

// Initiate cURL
$ch = curl_init();

// Do we need to POST of GET ?
if (strtoupper($method) == 'POST')
{   
    curl_setopt($ch, CURLOPT_URL, $action);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
}
else
{
    curl_setopt($ch, CURLOPT_URL, $action . '?' . $fields);   
}

// Follow redirects and return the transfer
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "transport.php (CURL)");
 
// Get result and close cURL
$result = curl_exec($ch);
$curl_info = curl_getinfo($ch);
curl_close($ch);

// Return the response
header("Content-type: ".$curl_info['content_type']);
echo $result;

?>

Plaats het bovenstaande script in http://mijndev.openstreetmap.nl/~ligfietser/fiets/ en vervang de allowedDomains array met de sites die je moet kunnen benaderen. Deze methode van whitelisting is noodzakelijk omdat je site anders misbruikt kan worden voor allerlei illegale activiteiten.

Vervolgens plaats je in de JavaScript de AJAX call de url van dit proxy-script voor de externe url die je nu aanroept. Bijvoorbeeld:

OpenLayers.Request.GET({
			url: "proxy.php?url=http://overpass-api.de/api/interpreter/",
			callback: onLoadMenu}
			);

Het interessante stukje hierin is: "proxy.php?url=". Hiermee veranderd de externe AJAX call naar een locale AJAX call en dan mag het wel van IE. Ik hoop dat jullie hier wat aan hebben.


Mapping tools: Garmin GPSmap 60CSx, Giant Terrago 2002

Offline

#504 2012-12-10 11:24:10

noordfiets
Member
From: Groningen stad
Registered: 2010-02-14
Posts: 843

Re: Webkaartje met Fietstags

Lambertus wrote:

Plaats het bovenstaande script in http://mijndev.openstreetmap.nl/~ligfietser/fiets/

Daar ging het dus mis. Het lijkt erop dat php niet op mijndev draait. Of curl niet is toegevoegd. Of dat het gewoon niet geactiveerd is voor Ligfietsers' account.
De proxy op mijn server draait prima voor tests, maar dat is niet echt een productieserver te noemen.
Alternatief is het ombouwen van openlayers om >=7 IE < 10 met de alternatieve IE call te ondersteunen maar overpass lijkt dan niet de juiste header terug te geven. Vanf IE10 is CORS volgens de standaard ondersteund en dan gaat het gewoon goed.

Wat ligfietser dus nodig heeft is iemand met meer kennis van mijndev: wel of niet php / curl ?

Offline

#505 2012-12-10 11:40:53

ligfietser
Member
Registered: 2008-10-09
Posts: 5,241
Website

Re: Webkaartje met Fietstags

Noordfiets, ik heb jouw checkurl.php ook op de Duitse server gezet waar Lambertus ook zijn kaarten heeft gehost: http://osm.pleiades.uni-wuppertal.de/op … eckurl.php
Deze geeft itt mijndev wel antwoord: cURL is NOT installed

Last edited by ligfietser (2012-12-10 11:41:35)

Offline

#506 2012-12-10 11:46:29

Lambertus
Administrator
From: Apeldoorn (NL)
Registered: 2007-03-17
Posts: 3,269
Website

Re: Webkaartje met Fietstags

Ok, zet even een php bestandje met onderstaande code op de server om te bepalen of PHP en of CURL wel geinstalleerd is en roep het bestandje aan in je browser:

<?php
phpinfo();
?>

Ik vermoed dat php-libcurl niet geinstalleerd is.

Edit 1: ligfietser is me voor.

Edit 2: ik heb de beheerder van mijndev (Sander Hoentjen van Oxilion) een mailtje gestuurd.


Mapping tools: Garmin GPSmap 60CSx, Giant Terrago 2002

Offline

#507 2012-12-10 11:51:24

ligfietser
Member
Registered: 2008-10-09
Posts: 5,241
Website

Re: Webkaartje met Fietstags

Lambertus:
(files removed)

Last edited by ligfietser (2012-12-10 11:58:05)

Offline

#508 2012-12-10 11:54:21

Lambertus
Administrator
From: Apeldoorn (NL)
Registered: 2007-03-17
Posts: 3,269
Website

Re: Webkaartje met Fietstags

Ligfietser, haal die testbestandjes maar weer weg, ze geven belangrijke security info over de server.

Wat me opvalt is dat zowel php als curl geinstalleerd zijn op mijndev. FF nadenken...


Mapping tools: Garmin GPSmap 60CSx, Giant Terrago 2002

Offline

#509 2012-12-10 11:59:14

ligfietser
Member
Registered: 2008-10-09
Posts: 5,241
Website

Re: Webkaartje met Fietstags

Oops, sorry Lambertus, heb ze weer verwijderd.
Hoop dat je er chocola van kan maken. In ieder geval reuze bedankt voor het meedenken.

Offline

#510 2012-12-10 12:02:42

Lambertus
Administrator
From: Apeldoorn (NL)
Registered: 2007-03-17
Posts: 3,269
Website

Re: Webkaartje met Fietstags

Het zou al wat kunnen helpen als je een test-url met de proxy.php kunt posten en de volgende regels bovenaan in het proxy script zet:

<?php
ini_set('display_errors',1); 
error_reporting(E_ALL);

[...]

?>

Mapping tools: Garmin GPSmap 60CSx, Giant Terrago 2002

Offline

#511 2012-12-10 12:12:04

ligfietser
Member
Registered: 2008-10-09
Posts: 5,241
Website

Re: Webkaartje met Fietstags

http://mijndev.openstreetmap.nl/~ligfie … r/test.php

Ja, nu geeft die antwoord: cURL is installed

Offline

#512 2012-12-10 12:25:20

Lambertus
Administrator
From: Apeldoorn (NL)
Registered: 2007-03-17
Posts: 3,269
Website

Re: Webkaartje met Fietstags

Welke URL heeft het proxy script gekregen? Ik wil graag de reactie zien van bijvoorbeeld:

http://mijndev.openstreetmap.nl/~ligfietser/fiets/api/interpreter/proxy.php?url=http://overpass-api.de/api/interpreter/

Mapping tools: Garmin GPSmap 60CSx, Giant Terrago 2002

Offline

#513 2012-12-10 12:33:55

ligfietser
Member
Registered: 2008-10-09
Posts: 5,241
Website

Re: Webkaartje met Fietstags

Ik heb nu Noordfiets' proxy gekopieerd:
http://mijndev.openstreetmap.nl/~ligfie … /index.php

En ook zijn site, http://mijndev.openstreetmap.nl/~ligfie … noordfiets
Maar zijn QURL naar http://mijndev.openstreetmap.nl/~ligfie … terpreter/ werkt nog niet.

		var proxy = true;
		
		if (proxy){
			var QURL = "http://mijndev.openstreetmap.nl/~ligfietser/fiets/api/interpreter/";
		}
		else{
			var QURL = "http://overpass-api.de/api/interpreter/"; //default
		}
		

Doet ook niets in andere browsers dus er is iets nog niet goed.

index.php:

<?
ini_set('display_errors',1); 
error_reporting(E_ALL);
// basis url
$overpass_url = "http://overpass-api.de/api/interpreter?data=";

$data = $_GET["data"]; // de string met de query
$bbox = $_GET["bbox"]; // is de bounding box die (bbox) in bovenstaande string  vervangt
$data = str_replace( "\\" , "" , $data); // als magic quotes aanstaat dubbele slash verwijderen, en anders niet van invloed
$data = urlencode($data); // vorm geven voor correcte request
$bbox = urlencode($bbox);
$request = $overpass_url.$data."&bbox=".$bbox;

$proxy = curl_init($request);
curl_setopt($proxy, CURLOPT_RETURNTRANSFER, 1);
header('Content-type: application/osm3s+xml');	// dit zet speciale header voor osm-xml
$response = curl_exec($proxy); // stuur de query naar overpass
print $response; // en het resultaat naar de client
curl_close($proxy);	
?>

Last edited by ligfietser (2012-12-10 12:40:57)

Offline

#514 2012-12-10 12:42:46

noordfiets
Member
From: Groningen stad
Registered: 2010-02-14
Posts: 843

Re: Webkaartje met Fietstags

ligfietser wrote:

Ik heb nu Noordfiets' proxy gekopieerd:
http://mijndev.openstreetmap.nl/~ligfie … /index.php

En ook zijn site, http://mijndev.openstreetmap.nl/~ligfie … noordfiets
Maar zijn QURL naar http://mijndev.openstreetmap.nl/~ligfie … terpreter/ werkt nog niet.

		var proxy = true;
		
		if (proxy){
			var QURL = "http://mijndev.openstreetmap.nl/~ligfietser/fiets/api/interpreter/";
		}
		else{
			var QURL = "http://overpass-api.de/api/interpreter/"; //default
		}
		

Doet ook niets in andere browsers dus er is iets nog niet goed.

index.php:

<?
ini_set('display_errors',1); 
error_reporting(E_ALL);
// basis url
$overpass_url = "http://overpass-api.de/api/interpreter?data=";

$data = $_GET["data"]; // de string met de query
$bbox = $_GET["bbox"]; // is de bounding box die (bbox) in bovenstaande string  vervangt
$data = str_replace( "\\" , "" , $data); // als magic quotes aanstaat dubbele slash verwijderen, en anders niet van invloed
$data = urlencode($data); // vorm geven voor correcte request
$bbox = urlencode($bbox);
$request = $overpass_url.$data."&bbox=".$bbox;

$proxy = curl_init($request);
curl_setopt($proxy, CURLOPT_RETURNTRANSFER, 1);
header('Content-type: application/osm3s+xml');	// dit zet speciale header voor osm-xml
$response = curl_exec($proxy); // stuur de query naar overpass
print $response; // en het resultaat naar de client
curl_close($proxy);	
?>

Oops, lijkt er op alsof mijndev wat stricter is .. zet in mijn scriptje eens 'php' achter de openingstag '<?'. Dus volledig <?php

Offline

#515 2012-12-10 13:02:26

ligfietser
Member
Registered: 2008-10-09
Posts: 5,241
Website

Re: Webkaartje met Fietstags

noordfiets wrote:

Oops, lijkt er op alsof mijndev wat stricter is .. zet in mijn scriptje eens 'php' achter de openingstag '<?'. Dus volledig <?php

Ja, die doet het nu big_smile
Bedankt!

Offline

#516 2012-12-10 13:14:42

noordfiets
Member
From: Groningen stad
Registered: 2010-02-14
Posts: 843

Re: Webkaartje met Fietstags

ligfietser wrote:
noordfiets wrote:

Oops, lijkt er op alsof mijndev wat stricter is .. zet in mijn scriptje eens 'php' achter de openingstag '<?'. Dus volledig <?php

Ja, die doet het nu big_smile
Bedankt!

Dus al die tijd waren het drie lettertjes ...
Werkt inderdaad prima zo, veel sneller dan die ouwe server hier ook.

tip: haal in de index.html nog de tekst 'status' bij de status-div weg en zet in de stylesheet bij div.statusline als extra 'visibility: hidden;' . Dan komt er bij het eerste laden niet zo'n loze melding over de status.

Offline

#517 2012-12-10 13:23:56

noordfiets
Member
From: Groningen stad
Registered: 2010-02-14
Posts: 843

Re: Webkaartje met Fietstags

Lambertus wrote:

Welke URL heeft het proxy script gekregen? Ik wil graag de reactie zien van bijvoorbeeld:

http://mijndev.openstreetmap.nl/~ligfietser/fiets/api/interpreter/proxy.php?url=http://overpass-api.de/api/interpreter/

Het proxyscriptje wat er nu staat is nogal strak dwz zonder bbox en data geeft ie een fout terug. Adres is http://mijndev.openstreetmap.nl/~ligfie … nterpreter . En het antwoord is hard gecodeerd als Content-type: application/osm3s+xml, dus de meeste browsers laten dat zelfs niet zomaar zien omdat ze het niet herkennen.

Dus

http://mijndev.openstreetmap.nl/~ligfietser/fiets/api/interpreter?data=(way[highway=cycleway](bbox);node(w););out skel;&bbox=6.515068359375,53.176810443687,6.624931640625,53.223186420239

geeft een set fietspaden als antwoord.

Offline

#518 2012-12-10 13:31:01

ligfietser
Member
Registered: 2008-10-09
Posts: 5,241
Website

Re: Webkaartje met Fietstags

Noordfiets, jouw wijzigingen zijn toegevoegd.
Ik heb ook een shortcut gemaakt: http://tinyurl.com/bicycletags

Offline

#519 2012-12-10 16:34:18

Jarien
Member
Registered: 2011-05-28
Posts: 145

Re: Webkaartje met Fietstags

Het duizelt me bij het lezen van deze correspondentie. Hier worden grootse dingen verricht!
Helaas mis ik nu hier en daar eenvoudige rwn-routes die wél zijn getagd.
Voorbeelden zijn relaties 284362, 284363 en 284365.
Het zijn slechts wandelroutes maar nu we gelukkig, heel comfortabel, op de bagagedrager van de fietsers mogen meeliften, zou ik het leuk vinden als jullie dat óók nog in orde zouden kunnen brengen.
Veel succes, ik volg het allemaal met belangstelling.
Jan

Offline

#520 2012-12-10 17:14:28

ligfietser
Member
Registered: 2008-10-09
Posts: 5,241
Website

Re: Webkaartje met Fietstags

Tja Jan, jullie wandelaars maken er ook een zootje van, route=walking, route=foot, route=hiking, wat zijn de verschillen? wink
Anyway, ze zijn nu zichtbaar: http://mijndev.openstreetmap.nl/~ligfie … FFFFFTFFFF

Om misverstanden te voorkomen heb ik ook de rwn_ref knooppunten die ook rcn_ref fietsknooppunten zijn, eruit gehaald omdat er nog geen oplossing is ze beiden te tonen (kan wel, bv met rwn_ref/rcn_ref, maar dat blijft verwarrend voor de fietsers). Jullie moeten dus maar gauw een eigen kaartje maken, misschien dat Traildino dat kan?

Last edited by ligfietser (2012-12-10 17:20:27)

Offline

#521 2012-12-10 17:20:39

Jarien
Member
Registered: 2011-05-28
Posts: 145

Re: Webkaartje met Fietstags

Ligfietser,
bedankt voor de lift.
Jan

Het weglaten van de dubbele knooppunten op de wandelkaart lijkt me een heel goede oplossing.

Last edited by Jarien (2012-12-10 17:24:50)

Offline

#522 2012-12-10 21:05:38

noordfiets
Member
From: Groningen stad
Registered: 2010-02-14
Posts: 843

Re: Webkaartje met Fietstags

Jarien wrote:

Het duizelt me bij het lezen van deze correspondentie. Hier worden grootse dingen verricht!
Helaas mis ik nu hier en daar eenvoudige rwn-routes die wél zijn getagd.
Voorbeelden zijn relaties 284362, 284363 en 284365.
Het zijn slechts wandelroutes maar nu we gelukkig, heel comfortabel, op de bagagedrager van de fietsers mogen meeliften, zou ik het leuk vinden als jullie dat óók nog in orde zouden kunnen brengen.
Veel succes, ik volg het allemaal met belangstelling.
Jan

Niet om de inspanningen van de Nederlanders teniet te doen, maar zo is het mooi!

  <relation id="76712">
    <tag k="lwn" v="Essen"/>
    <tag k="name" v="Anna-Linder-Weg"/>
    <tag k="network" v="lwn"/>
    <tag k="operator" v="Sauerländischer Gebirgsverein"/>
    <tag k="osmc:symbol" v="black:black::AL:white"/>
    <tag k="ref" v="AL"/>
    <tag k="route" v="foot"/>
    <tag k="symbol" v="Weißes verschlungenes AL auf schwarzem Grund"/>
    <tag k="type" v="route"/>
    <tag k="wiki:symbol" v="Ortswanderwege_11.gif"/>
  </relation>

Vooral die extra lwn tag is geweldig. Zo kun je lokale routes op plaats of gebied filteren.

Offline

#523 2012-12-12 15:33:17

Allroads
Member
Registered: 2011-03-05
Posts: 2,956

Re: Webkaartje met Fietstags

http://mijndev.openstreetmap.nl/~ligfie … FFFFTFFFFF
Gaat hier iets niet goed met de kleur van de mtb route bij alleen IE is zwart ipv roze.

Last edited by Allroads (2012-12-12 15:33:35)

Offline

#524 2012-12-13 00:15:22

noordfiets
Member
From: Groningen stad
Registered: 2010-02-14
Posts: 843

Re: Webkaartje met Fietstags

Allroads wrote:

http://mijndev.openstreetmap.nl/~ligfie … FFFFTFFFFF
Gaat hier iets niet goed met de kleur van de mtb route bij alleen IE is zwart ipv roze.

IE kent minder kleuren dan andere browsers, dus moet je magenta als #nnnnnn opgeven.

Offline

#525 2012-12-13 09:48:59

ligfietser
Member
Registered: 2008-10-09
Posts: 5,241
Website

Re: Webkaartje met Fietstags

Ook brown van de wandelroutes herkent IE niet en het script loopt regelmatig vast. Ik neig om dat stukje php in de code maar weer weg te halen ;-)

Offline

Board footer

Powered by FluxBB