La mia necessità è di aggiungere le mappe al nostro CRM ottenendo prima i geocode dei clienti ( fornendo gli indirizzi) e poi i tile delle mappe fornendo lat e long.
premetto che sono un programmatore c# e la applicazione è MVC 4.0 e che volevo accedere a osm senza librerie di terze parti.
Ora il punto è che il server osm continua a rispondere server error 500 e non capisco perchè. ( se volete vi posto poi anche il codice ). ma la cosa strana è che se io apro una pagina di un browser e scrivo https://www.openstreetmap.org/oauth/request_token mi da lo stesso errore …
la domanda è : E’ sbagliato l’url o sono i parametri errati ??
qualcuno mi può dare una mano ??
grazie a tutti
giorgio
PS : per curiosità vi posto la signaturebase ottenuta dai vari passaggi :
GET%26https%3A%2F%2Fwww.openstreetmap.org%2Foauth%2Frequest_token%26oauth_consumer_key%3DGsRr55jHSSv8VWnMgLHjaVKZxgvca4UGOo4Tk8OG%26oauth_nonce%3DMTU1NDgzOTgzMg%253D%253D%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1554839832%26oauth_token%3D%26oauth_version%3D1.0
… che a me pare stia in piedi, cioè mi aspetteri una bad request ma non un 500.
Si effettivamente è strano che restituisca un Internal Server Error.
Due cose: il forum è poco attivo perché la comunita italiana preferisce la Mailing List.
C’è una sezione nel forum / ml per i developer .
Ora ho girato la tua richiesta in ml, aspetto risposta e la posto qua.
Appena ho un attimo di tempo ti fornisco degli strumenti utili per lavorare con OSM.
Terzo, hai verificato le policy per le chiamate ad OSM?
P.S.: rimango a disposizione per ulteriori domande.
Se devi mostrare mappe o fare semplice geocoding, e quindi non devi editare la mappa, non ti serve avere un token di accesso.
Il problema nasce però dall’uso che ne vuoi fare perchè i sistemi della OSM foundation che ti possono dare questi servizi “gratis” (ovvero il tile server [1] e il geocoder [2]) non sono dimensionati per gestire accessi massivi da applicazioni.
Se superi i limiti delle usage policy [3] e [4] devi attivare questi servizi su tue istanze oppure affidarti a servizi di terze parti come Mapbox (che per quanto mi risulta prevede anche un free tier). In questo modo eviti sorprese per i tuoi utenti come sconnessioni dai siti OSM per uso improprio.
ciao new member,
( scusa per il ritardo con cui ti scrivo ma ero fuori sede)
Ti ringrazio per le info che mi hai dato , sono state molto utili. Innanzi tutto volevo dirti che l’uso che ne vogliamo fare noi è molto limitato , si tratta di qualche decina di chiamate ogni tanto, cioè quando i commerciali vanno a trovar i clienti.
Detto ciò , in realtà noi vogliamo utilizzare osm perchè ci piace.
Dopo le tue dritte ho riletto meglio le policie s in particolare queste “HTTP Referer or User-Agent” e mi sono accorto che le chiamate che io facevo non avevamo HTTP Referer o User-Agent ( se ho capito bene i concetti ) in quanto sono chiamate da c# dal server.
E’ obbligatorio passare uno user agent nella GET, mentre non lo è per il referer.
Lo user agent è una stringa arbitraria che identifica il tuo client HTTP e te la inventi… ad esempio mycrm1.0. Più è specifica e più sei certo che identifichi univocamente la tua app.
Per settarla usa la proprietà opportuna della classe httpWebRequest perchè non penso ci sia un default.
La chiamata a Nominatim con il parametro email (e un indirizzo valido come valore) mi sembra una buona idea.
Vedo che ora hai bisogno anche di fare routing… anche qui proverei con Mapbox o le API di www.openrouteservice.org.
Editare le mappe significa chiamare le API di Openstreetmap per inserire nuovi elementi nella mappa come nodi o way
Ciao IIBano , ho provato nella chiamata a inserire httpWebRequest.UserAgent = “crm.miocrm.net”; ma mi continua a dare server error 500 con lo status a WebExceptionStatus.ProtocolError=7
continuo a non capire l’errore…
qualche altra indicazione ??