| Visa föregående ämne :: Visa nästa ämne |
| Startad av: |
Meddelande |
Cornelius

Medlem i: 3387 dagar
Status: Offline
#724400
|
Skrivet: 2012-06-25 18:00
Ämne: Google Latitude och Maps
|
|
|
Jag försöker skapa en Google Map som hämtar positionen från mitt Google Latitude. Jag har hittat en kod som ska hämta koordinaterna från en json-feed men det vill inte funka. Är det någon här som gjort något liknande??
Innehållet i JSON-feeden ser ut som följande:
1: { "type": "FeatureCollection",
2: "features": [
3: { "type": "Feature",
4: "geometry": {"type": "Point", "coordinates": [16.351309, 56.664024]},
5: "properties": {
6: "id": "-XXXXXXXXXXXXXXXX",
7: "accuracyInMeters": 1414,
8: "timeStamp": 1340556973,
9: "reverseGeocode": "Kalmar, Sweden",
10: "photoUrl": "http://www.google.com/latitude/apps/badge/api?type=photo&photo=qna5IDgBAAA.LYZVSU6qo8Jxvasg5gJfbA.cul0-ZAOZvvDTyx6T5qgHQ",
11: "photoWidth": 96,
12: "photoHeight": 96,
13: "placardUrl": "http://www.google.com/latitude/apps/badge/api?type=photo_placard&photo=qna5IDgBAAA.LYZVSU6qo8Jxvasg5gJfbA.cul0-ZAOZvvDTyx6T5qgHQ&moving=true&stale=true&lod=1&format=png",
14: "placardWidth": 56,
15: "placardHeight": 59
16: }
17: }
18: ]
19: }
|
PHP-koden:
1: $url = 'http://www.google.com/latitude/apps/badge/api?user='.$userId.'&type=json'; 2: 3: // We get the content 4: $content = file_get_contents( $url ); 5: 6: // We convert the JSON to an object 7: $json = json_decode( $content ); 8: 9: $coord = $json->features[0]->geometry->coordinates; 10: $timeStamp = $json->features[0]->properties->timeStamp; 11: 12: if ( ! $coord ) 13: exit('This user doesn\'t exist.'); 14: 15: $date = date( 'd/m/Y H:i:s', $timeStamp ); 16: $lat = $coord[1]; 17: $lon = $coord[0];
|
Javascript för att visa karta (just nu har den hårdkodade koordinater, det är dessa jag vill hämta från Latitude):
1: $url = 'http://www.google.com/latitude/apps/badge/api?user='.$userId.'&type=json';
2: 3: // We get the content
4: $content = file_get_contents( $url );
5: 6: // We convert the JSON to an object
7: $json = json_decode( $content );
8: 9: $coord = $json->features[0]->geometry->coordinates;
10: $timeStamp = $json->features[0]->properties->timeStamp;
11: 12: if ( ! $coord )
13: exit('This user doesn\'t exist.');
14: 15: $date = date( 'd/m/Y H:i:s', $timeStamp );
16: $lat = $coord[1];
17: $lon = $coord[0];
|
Några idéer? Kodexempel och förslag? |
|
|
|
| Till toppen på sidan |
|
Azreal


Medlem i: 2814 dagar Från: Uppsala, bor i Göteborg
Status: Offline
#724402
|
Skrivet: 2012-06-25 19:09
Ämne:
|
|
|
Så hur har du felsökt?
Har du felsökt ditt PHP skript, får du det du tror att du ska få?
Får du in värdena i ditt javascript?
Din felbeskrivning "men vill inte funka....." är ju helt fanatiskt.
Lägg ner lite energi på att beskriva vad du vill ha, vad du inte får eller vart det går snett. |
|
|
_________________ Konsultation via PM, inte gratis. |
| Till toppen på sidan |
|
Cornelius

Medlem i: 3387 dagar
Status: Offline
#724403
|
Skrivet: 2012-06-25 20:08
Ämne:
|
|
|
Det som händer är att jag får NULL till svars när jag ekar ut innehåller i $content så det är antagligen vid "file_get_contents" det går fel.
Jag efterlyste någon som har jobbat med Latitude API och Google Maps API och har gjort något liknande. Måste finnas någon tycker jag.
Undanber mig besservisser svar om min frågeformulering, tack. Jag är ingen super-PHP-programmerare. |
|
|
|
| Till toppen på sidan |
|
Wedge


Medlem i: 3949 dagar Från: Järfälla
Status: Offline
#724406
|
Skrivet: 2012-06-25 21:53
Ämne:
|
|
|
| Cornelius skrev: |
| Undanber mig besservisser svar om min frågeformulering, tack. | Besserwisser, heter det.
På en verkstad vill mekanikerna veta varför bilen är där.
Hos en läkare beskriver patienterna sina symptom och problem.
På PHPportalen säger man att det inte funkar...? |
|
|
_________________ Qualitum Webbhotell | Gomoku.se | PHP6.se
Skådebröd är fullt av optisk fiber |
| Till toppen på sidan |
|
Cornelius

Medlem i: 3387 dagar
Status: Offline
#724407
|
Skrivet: 2012-06-25 22:12
Ämne:
|
|
|
| Men nu har jag ju beskrivit var det går fel. Kan vi lägga ner och fokusera på problemet? |
|
|
|
| Till toppen på sidan |
|
Wedge


Medlem i: 3949 dagar Från: Järfälla
Status: Offline
#724409
|
Skrivet: 2012-06-25 22:49
Ämne:
|
|
|
| Cornelius skrev: |
| Men nu har jag ju beskrivit var det går fel. Kan vi lägga ner och fokusera på problemet? | Samtidigt som du till slut gav en ordentlig felbeskrivning valde du att ge en känga till Azreal. Fint.
Beträffande själva problemet har jag inget att tillföra. |
|
|
_________________ Qualitum Webbhotell | Gomoku.se | PHP6.se
Skådebröd är fullt av optisk fiber |
| Till toppen på sidan |
|
Azreal


Medlem i: 2814 dagar Från: Uppsala, bor i Göteborg
Status: Offline
#724410
|
Skrivet: 2012-06-25 23:00
Ämne:
|
|
|
Börja uppifrån och ner testa innehållet i dina variabler, får du förväntat data tillbaka ifrån file_get_contents() t.ex.
Har du full felrapportering på? |
|
|
_________________ Konsultation via PM, inte gratis. |
| Till toppen på sidan |
|
Cornelius

Medlem i: 3387 dagar
Status: Offline
#724411
|
Skrivet: 2012-06-25 23:17
Ämne:
|
|
|
Warning: file_get_contents() [function.file-get-contents]: http:// wrapper is disabled in the server configuration by allow_url_fopen=0 in /www/webvol20/6r/h70xcoudszl784l/jeppe.me/public_html/gps/gmap.php on line 25
Warning: file_get_contents(http://www.google.com/latitude/apps/badge/api?granularity=best&user=-3436951879158881969&type=json) [function.file-get-contents]: failed to open stream: no suitable wrapper could be found in /www/webvol20/6r/h70xcoudszl784l/jeppe.me/public_html/gps/gmap.php on line 25
Notice: Trying to get property of non-object in /www/webvol20/6r/h70xcoudszl784l/jeppe.me/public_html/gps/gmap.php on line 30
Notice: Trying to get property of non-object in /www/webvol20/6r/h70xcoudszl784l/jeppe.me/public_html/gps/gmap.php on line 30
Notice: Trying to get property of non-object in /www/webvol20/6r/h70xcoudszl784l/jeppe.me/public_html/gps/gmap.php on line 30
Notice: Trying to get property of non-object in /www/webvol20/6r/h70xcoudszl784l/jeppe.me/public_html/gps/gmap.php on line 31
Notice: Trying to get property of non-object in /www/webvol20/6r/h70xcoudszl784l/jeppe.me/public_html/gps/gmap.php on line 31
Notice: Trying to get property of non-object in /www/webvol20/6r/h70xcoudszl784l/jeppe.me/public_html/gps/gmap.php on line 31 |
|
|
|
| Till toppen på sidan |
|
Azreal


Medlem i: 2814 dagar Från: Uppsala, bor i Göteborg
Status: Offline
#724412
|
Skrivet: 2012-06-25 23:30
Ämne:
|
|
|
| Ja där har du svaret, högst upp. Titta på curl som en ersättare kanske. |
|
|
_________________ Konsultation via PM, inte gratis. |
| Till toppen på sidan |
|
Cornelius

Medlem i: 3387 dagar
Status: Offline
#724413
|
Skrivet: 2012-06-25 23:36
Ämne:
|
|
|
| Tack! Nu är jag som sagt inget PHP-proffs och vet inte riktigt hur man använder "curl"-funktionerna. Är det curl_multi_getcontent() jag använder för att få tag på informationen? |
|
|
|
| Till toppen på sidan |
|
Azreal


Medlem i: 2814 dagar Från: Uppsala, bor i Göteborg
Status: Offline
#724414
|
Skrivet: 2012-06-25 23:39
Ämne:
|
|
|
| Vet inte, men läs manualen så kan du nog hitta exempel på hur du kan göra, alternativt läsa manualen för fil_get_contents() där brukar det finnas färdiga exempel på hur man kan bete sig när serverkonfigen ställer till det. |
|
|
_________________ Konsultation via PM, inte gratis. |
| Till toppen på sidan |
|
Cornelius

Medlem i: 3387 dagar
Status: Offline
#724415
|
Skrivet: 2012-06-25 23:44
Ämne:
|
|
|
Ja, nu fick jag ut följande och det är "coordinates" jag vill komma åt. Har du tips på hur jag får ut latitude och longitude i varsin variabel?
{ "type": "FeatureCollection", "features": [ { "type": "Feature", "geometry": {"type": "Point", "coordinates": [16.3539309, 56.6672169]}, "properties": { "id": "-3436951879158881969", "accuracyInMeters": 30, "timeStamp": 1340657291, "reverseGeocode": "Kalmar, Sweden", "photoUrl": "http://www.google.com/latitude/apps/badge/api?type=photo&photo=tGmaJTgBAAA.LYZVSU6qo8Jxvasg5gJfbA.1gvRQ6KFOMem15AvnVYlOg", "photoWidth": 96, "photoHeight": 96, "placardUrl": "http://www.google.com/latitude/apps/badge/api?type=photo_placard&photo=tGmaJTgBAAA.LYZVSU6qo8Jxvasg5gJfbA.1gvRQ6KFOMem15AvnVYlOg&moving=false&stale=true&lod=1&format=png", "placardWidth": 56, "placardHeight": 59 } } ] }
Warning: json_decode() expects parameter 1 to be string, array given in /www/webvol20/6r/h70xcoudszl784l/jeppe.me/public_html/gps/gmap.php on line 39
Notice: Trying to get property of non-object in /www/webvol20/6r/h70xcoudszl784l/jeppe.me/public_html/gps/gmap.php on line 41
Notice: Trying to get property of non-object in /www/webvol20/6r/h70xcoudszl784l/jeppe.me/public_html/gps/gmap.php on line 41
Notice: Trying to get property of non-object in /www/webvol20/6r/h70xcoudszl784l/jeppe.me/public_html/gps/gmap.php on line 41
Notice: Trying to get property of non-object in /www/webvol20/6r/h70xcoudszl784l/jeppe.me/public_html/gps/gmap.php on line 42
Notice: Trying to get property of non-object in /www/webvol20/6r/h70xcoudszl784l/jeppe.me/public_html/gps/gmap.php on line 42
Notice: Trying to get property of non-object in /www/webvol20/6r/h70xcoudszl784l/jeppe.me/public_html/gps/gmap.php on line 42
Min kod ser ut som följer:
1: $url = 'http://www.google.com/latitude/apps/badge/api?granularity=best&user=-'.$userId.'&type=json'; 2: 3: // We get the content 4: //$content = file_get_contents( $url ); 5: 6: $ch = curl_init($url); 7: 8: // Execute 9: 10: echo "<br />"; 11: curl_exec($ch); 12: echo "<br />"; 13: 14: $content = curl_getinfo($ch); 15: 16: 17: // We convert the JSON to an object 18: $json = json_decode( $content ); 19: 20: $coord = $json->features[0]->geometry->coordinates; 21: $timeStamp = $json->features[0]->properties->timeStamp; 22: 23: $date = date( 'd/m/Y H:i:s', $timeStamp ); 24: $lat = $coord[1]; 25: $lon = $coord[0];
|
|
|
|
|
| Till toppen på sidan |
|
Azreal


Medlem i: 2814 dagar Från: Uppsala, bor i Göteborg
Status: Offline
#724416
|
Skrivet: 2012-06-25 23:49
Ämne:
|
|
|
| Läs i manualen vad funktionerna du använder returnerar, läs dina felmeddelanden, jobba därefter. |
|
|
_________________ Konsultation via PM, inte gratis. |
| Till toppen på sidan |
|
Cornelius

Medlem i: 3387 dagar
Status: Offline
#724417
|
Skrivet: 2012-06-26 00:07
Ämne:
|
|
|
Som jag har letat efter en sån här lösning. Om det nu finns fler som hade samma problem som jag så ger jag er lösningen här.
I kombination med koden jag gav tidigare:
1: function get_json($url) { 2: $ch = curl_init(); 3: 4: curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 5: curl_setopt($ch, CURLOPT_URL, $url); 6: 7: $data = curl_exec($ch); 8: $resultCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); 9: curl_close($ch); 10: 11: if ($resultCode == 200) { 12: return json_decode($data); 13: } else { 14: return false; 15: } 16: } 17: $json = get_json('http://www.google.com/latitude/apps/badge/api?granularity=best&user=-'.$userId.'&type=json');
|
|
|
|
|
| Till toppen på sidan |
|
|