Your SlideShare is downloading. ×
0
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Das Web Wird Mobil - Geolocation und Location Based Services
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Das Web Wird Mobil - Geolocation und Location Based Services

2,334

Published on

Vortrag auf der International PHP Conference 2012 Spring Edition zu Geolocation im Browser und Location Based Services wie Google Places und Foursquare

Vortrag auf der International PHP Conference 2012 Spring Edition zu Geolocation im Browser und Location Based Services wie Google Places und Foursquare

Published in: Technology, Travel
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,334
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
12
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. das webwird mobilStephan Schmidt, 1&1 Internet AGInternational PHP Conference 2012Hotel Maritim proArte, Berlin
  • 2. beiArbeit
  • 3. Sport
  • 4. undSpiel
  • 5. ich suche cup-cakes in meinernähe.
  • 6. schritt eins:wo bin ich?
  • 7. geolocation vordem jahr 2008:
  • 8. 91.22.203.142
  • 9. where the heck isoberderdingen?
  • 10. google weißziemlich genauwo* ich bin.* und zwar nicht in oberderdingen.
  • 11. geolocation imjahr 2012:
  • 12. geographische länge 48.96977,8.613199geographische breite
  • 13. breitengradelängengrade
  • 14. woher weißmein browserdas?
  • 15. geolocationapi
  • 16. +
  • 17. agie! etw asMund
  • 18. die Magie ist ausjavascript nutz-bar.
  • 19. if (navigator.geolocation) { navigator.geolocation.getCurrentPosition ( function(position) { // location retrieved }, function(error) { // error happened } );}
  • 20. Geoposition coords : Coordinates accuracy : 65 // meter altitude : null altitudeAccuracy : null heading : null latitude : 52.518328398571434 longitude : 13.387145829999998 speed : null
  • 21. PositionError code : 1 constructor : PositionErrorConstructor PERMISSION_DENIED : 1 POSITION_UNAVAILABLE : 2 TIMEOUT : 3 message: "User denied Geolocation"
  • 22. navigator.geolocation.getCurrentPosition( function(position) {...}, function(error) {...}, { enableHighAccuracy : true, timeout : 5000, // milliseconds maximumAge : 1000 * 60 // milliseconds } );}
  • 23. navigator.geolocation.watchPosition ( function(pos) { // position changed }, function(error) { // error happened })
  • 24. 9.0+ 3.5+ 5.0+ 5.0+ 10.6+ 3.0+ 2.0+
  • 25. where the heck is52.51832,13.387145?
  • 26. var latlon = new google.maps.LatLng(pos.coords.latitude, pos.coords.longitude);var options = { zoom: 15, center: latlon, mapTypeId: google.maps.MapTypeId.ROADMAP};var map = new google.maps.Map($("#map"), options);var marker = new google.maps.Marker({ position: latlon, map: map, title:"Sie sind hier!"});
  • 27. menschenwollen lieberadressen.
  • 28. http://maps.google.com/maps/api/service/output?latlng=lat,lon&sensor=false
  • 29. geocodehttp://maps.google.com/maps/api/service/output?latlng=lat,lon&sensor=false
  • 30. xml | jsonhttp://maps.google.com/maps/api/service/output?latlng=lat,lon&sensor=false
  • 31. positionhttp://maps.google.com/maps/api/service/output?latlng=lat,lon&sensor=false
  • 32. genug javascript,jetzt kommt derelefant.
  • 33. public function geocodeReverse($lat, $lon) { $url = sprintf(http://maps.google.com/maps/api/ . geocode/json?latlng=%s,%s&sensor=false, $lat, $lon); $json = file_get_contents($url); $response = json_decode($json); if ($response->status === OK) { return $response->results; } else { throw new Exception($response->status); } }
  • 34. "results" : [ { "address_components" : [...], "formatted_address" : "Mittelstraße 23, 10117 Berlin, Germany", "geometry" : { "location" : { "lat" : 52.51820, "lng" : 13.387170 }, "location_type" : "ROOFTOP", "viewport" : { "northeast" : {...}, "southwest" : {...} } }, "types" : [ "street_address" ] }, { "address_components" : [ ... ], "formatted_address" : "10117 Berlin, Germany", "geometry" : { "bounds" : {...} }, "location" : {...}, "location_type" : "APPROXIMATE", "viewport" : {...}, "types" : [ "postal_code" ] }, ...]
  • 35. try { $geocoder = new Geocoder(); $results = $geocoder->geocodeReverse($lat, $lon); echo "<ul>"; foreach ($results as $result) { printf("<li>%s (%s)</li>", $result->formatted_address, implode(, , $result->types)); } echo "</ul>";} catch (Exception $e) { echo "Geocodierung ist fehlgeschlagen: " . $e->getMessage();}
  • 36. •Mittelstraße 23, 10117 Berlin, Germany (street_address)•10117 Berlin, Germany (postal_code)•Mitte, Berlin, Germany (sublocality, political)•Berlin, Germany (locality, political)•Berlin, Germany (administrative_area_level_1, political)•Germany (country, political)
  • 37. Laut Google: Laut Hotel:Mittelstraße 23 Friedrichstraße 15110117 Berlin 10117 BerlinGermany Germany
  • 38. schritt zwei:wo sind diecupcakes?
  • 39. https:/maps.googleapis.com/maps/api/place/method/output?parameters&key=[key]
  • 40. sicherheithttps:/maps.googleapis.com/maps/api/place/method/output?parameters&key=[key]
  • 41. search | detailhttps:/maps.googleapis.com/maps/api/place/method/output?parameters&key=[key]
  • 42. xml | jsonhttps:/maps.googleapis.com/maps/api/place/method/output?parameters&key=[key]
  • 43. location radius sensorkeyword name types rankbylanguage
  • 44. https://maps.googleapis.com/maps/api/place/search/json?location=52.5185,13.3885&types=food&radius=25000&key=...&sensor=false&name=cupcake
  • 45. { "html_attributions" : [ "Listings by ...." ], "results" : [ { "geometry" : { "location" : { "lat" : 52.5107460, "lng" : 13.4577320 } }, "icon" : "http://maps.gstatic.com/ma...s/restaurant-71.png", "id" : "b9a03f408df6ade6021a150d3bf5ae04f24853db", "name" : "Cupcake", "rating" : 4.10, "reference" : "CnRl...R7TAHjPh_H2Mw", "types" : [ "store", "cafe", "restaurant", "food"], "vicinity" : "Krossener Straße 12, Berlin" }, ....], "status" : "OK"}
  • 46. $config = parse_ini_file(google-places.ini);$long = $_GET[long];$lat = $_GET[lat];$searchUrl = sprintf("https://maps.....search/json". "?location=%s,%s&types=food&radius=25000&“. "key=%s&sensor=false", $lat, $long, $config[googlekey]);if (isset($_GET[search])) { $searchUrl = $searchUrl . "&name=" . $_GET[search];}$jsonResponse = file_get_contents($searchUrl);$response = json_decode($jsonResponse);
  • 47. if ($response->status !== OK) { printf(<p>Es ist ein Fehler aufgetreten: %s</p>, $response->status);} else { print <ul style="float: left; margin-right: 25px;">; foreach ($response->results as $entry) { $rating = isset($entry->rating) ? $entry->rating : 0; print <li>; printf(<a href="google-detail.php?reference=%s">%s</a>. <div class="rating_bar" title="Bewertung: %s"> . <div style="width:%d%%"></div></div>, $entry->reference, $entry->name, $rating, $rating/5*100); print </li>; } print </ul>;}
  • 48. schritt zwei ½:wie weit ist esnoch?
  • 49. ca b
  • 50. die erde ist eine kugel*.* eigentlich ein ellipsoid.
  • 51. dist = 6378.388 * acos( sin(lat1) * sin(lat2) + cos(lat1) * cos(lat2) * cos(lon2 - lon1)) http://www.kompf.de/gps/distcalc.html
  • 52. function calcDistance($lat1, $lon1, $lat2, $lon2) { $lat1 = deg2rad($lat1); $lon1 = deg2rad($lon1); $lat2 = deg2rad($lat2); $lon2 = deg2rad($lon2); return 6378.388 * acos(sin($lat1) * sin($lat2) + cos($lat1) * cos($lat2) * cos($lon2 - $lon1));}
  • 53. geht das auchohne google?
  • 54. https://api.foursquare.com/v2/venues/search?intent=browse&ll=lat,lon&radius=10000&limit=15&query=Cupcake&client_id=[id]&client_secret=[secret]&v=20111113
  • 55. sicherheithttps://api.foursquare.com/v2/venues/search?intent=browse&ll=lat,lon&radius=10000&limit=15&query=Cupcake&client_id=[id]&client_secret=[secret]&v=20111113
  • 56. versionierunghttps://api.foursquare.com/v2/venues/search?intent=browse&ll=lat,lon&radius=10000&limit=15&query=Cupcake&client_id=[id]&client_secret=[secret]&v=20111113
  • 57. positionhttps://api.foursquare.com/v2/venues/search?intent=browse&ll=lat,lon&radius=10000&limit=15&query=Cupcake&client_id=[id]&client_secret=[secret]&v=20111113
  • 58. $config = parse_ini_file(config/foursquare-config.ini);$searchUrl = sprintf(https://....../venues/search?. intent=browse&ll=%s,%s&radius=10000&limit=15. &query=Cupcake&client_id=%s&client_secret=%s. &v=20111113, $lat, $long, $config[clientId], $config[clientSecret]);$jsonResponse = file_get_contents($searchUrl);$response = json_decode($jsonResponse);foreach ($response->response->venues as $venue) { printf("<li>%s (%0.2f km)</li>", $venue->name, $venue->location->distance/1000);}
  • 59. "categories": [ { "id" : "4bf58dd8d48988d1bc941735", "name" : "Cupcake Shop", "pluralName" : "Cupcake Shops", "shortName" : "Cupcakes", "icon" : { "prefix" : "https://.../categories/food/cupcakes_", "sizes" : [32,44,64,88,256], "name" : ".png" }, "primary" : true } ]
  • 60. personalisierteempfehlungen
  • 61. wie unterstütztdas mein business?
  • 62. Beware of theDark Side, Luke.
  • 63. http://www.cultofmac.com/157641/this-creepy-app-isnt-just-stalking-women- without-their-knowledge-its-a-wake-up-call-about-facebook-privacy/
  • 64. vielen dank.Stephan SchmidtHead of Web Sales Development1&1 Internet AGschst@php.netwww.schst.nettwitter.com/schst

×