1stwebdesigner |
45+ Must Have iPhone Applications for Developers and Designers Posted: 29 Jun 2010 02:00 PM PDT Every iPhone owner should know that he/she possesses a device which is more that just a cell phone to call or text.You can use it as your second computer when you are not at your home or office, and we think this was the purpose of creating iPhone. It has great interface and superb Wi-Fi compatibility which places it in Elite class among other mobile devices. “iPhone as a computer” happens mainly because of its applications, you can have any application you like whether it is related to entertainment or your work. If you are a web developer or a graphic designer and you own an iPhone, then you can take advantage of your mobile phone by using important and essential applications designed specially for you people to help you if you’re in state of mobility. Finding these kind of applications can be a very difficult task but today we have done this task for you people. We have collected some of the most useful and helpful iPhone applications for developers and designers which can help you when you are out of your office desk. 1. WordPress
2. PHOTOSHOP
3. Database Viewer Plus
4. CameraBag
5. 1Password
6. Analytics App
7. Pingdom for iPhone
8. GoodReader
9. PayPal
10. Photobucket
11. Evernote
12. FTP On The Go
13. Ego
14. Dropbox
15. Tweetie
16. BlogPress
17. Brushes
18. Source Viewer
19. iMy
20. iWiki
21. TouchTerm
22. Harvest for iPhone
23. Web Developer Bible
24. cliqcliq Colors
25. Color Expert
26. Color Stream
27. CSS Cheat Sheet
28. jQuery Cheat Sheet
29. HTML Cheat Sheet
30. PHP Cheat Sheet
31. WhatTheFont
32. HTML Colors
33. HEX RGB Colors Guide
34. Read It Later
35. Things
36. Pingle
37. Network Ping
38. TwitterrificTwitterrific is an other application that let you read and publish your “Tweets”. 39. Tap Forms
40. iWantMyName
41. The Typography Manual
42. MiniBooks
43. Mint Stats
44. Ruler
45. Full Screen Web Browser
46. Web Source Viewer
47. Byline
|
How to Build a Distance Finder with Google Maps API Posted: 29 Jun 2010 03:00 AM PDT Google maps is a free web mapping service application provided by Google. It offers lots of cool features (showing various map types, plotting points, showing routes, geocoding addresses). You can also add all these features to your website using the Google Maps APIs provided by Google. In this tutorial I will show you how to add some of these features to your site. I will be using the Google Maps Javascript API v3 (the newest version). What are we going to build?We’ll make a distance finder. We’ll add a Google map to our site, plot two points on it (the user will be able to choose the addresses for these points), compute the distance between them and show the quickest route between them. You can see the demo of application here. Also, you can download the source code using this link. PrerequisitesThe first thing you need to do in order to use the API from Google is requesting an API key. You can do this here. It’s easy and free! Creating the web form for getting the two addressesWe’ll create a simple html form for the user to write the two addresses. We’ll add two input boxes and a button to the form. When the user presses the “Show” button, the map with the two locations will be shown. Here’s the code for this: <table align="center" valign="center"> <tr> <td colspan="7" align="center"><b>Find the distance between two locations</b></td> </tr> <tr> </tr> <tr> <td>First address:</td> <input name="<span class=" type="text" />address1" id="address1" size="50"/> <td>Second address:</td> <input name="<span class=" type="text" />address2" id="address2" size="50"/> </tr> <tr> </tr> <tr> <td colspan="7" align="center"><input type="button" value="Show" onclick="initialize();"/></td> </tr> </table> The ‘initialize’ JavaScript function will be called when pressing the button. The function will show the map. In the next section I’ll show you how. We also need to add a div tag to our page, where the map will be shown: <div id="map_canvas" style="width:70%; height:54%"></div> We will also need two div tags for showing the distances we will compute: <div style="width:100%; height:10%" id="distance_direct"></div> <div style="width:100%; height:10%" id="distance_road"></div>
Showing the mapThe first thing we need to do is to find the coordinates (latitude and longitude) for the two addresses. Luckily, Google Maps will help us! Here’s what we have to do: We’ll use the geocoder object for this. First, we’ll have to create a new geocoder object. geocoder = new google.maps.Geocoder(); After this, we’ll get the two address values from the form. Like this: address1 = document.getElementById("address1").value; address2 = document.getElementById("address2").value; Then, we’ll use the following code to call the geocode method on the geocoder object. We’ll pass it the addresses one by one and save the results in the variables called location1 and location2 (these will hold the coordinates of the two addresses). if (geocoder) { geocoder.geocode( { 'address': address1}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { //location of first address (latitude + longitude) location1 = results[0].geometry.location; } else { alert("Geocode was not successful for the following reason: " + status); } }); geocoder.geocode( { 'address': address2}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { //location of second address (latitude + longitude) location2 = results[0].geometry.location; // calling the showMap() function to create and show the map showMap(); } else { alert("Geocode was not successful for the following reason: " + status); } }); } You will notice that we’ve called the showMap() function when the coordinates for the second address are retrieved. This function will set the options for the map and show it. We’ll now compute the coordinates for the center of the map. The center point will be between our two points. latlng = new google.maps.LatLng((location1.lat()+location2.lat())/2,(location1.lng()+location2.lng())/2); Next, we’ll show the map. We have to create a new map object and pass it some parameters (set using the mapOptions variable): the zoom level, the center and the type of the map. var mapOptions = { zoom: 1, center: latlng, mapTypeId: google.maps.MapTypeId.HYBRID }; map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions); The next thing we’ll do is to show the quickest route between our locations. We’ll use a DirectionsService object from google maps for this. Here’s how the code looks: directionsService = new google.maps.DirectionsService(); directionsDisplay = new google.maps.DirectionsRenderer( { suppressMarkers: true, suppressInfoWindows: true }); directionsDisplay.setMap(map); var request = { origin:location1, destination:location2, travelMode: google.maps.DirectionsTravelMode.DRIVING }; directionsService.route(request, function(response, status) { if (status == google.maps.DirectionsStatus.OK) { directionsDisplay.setDirections(response); distance = "The distance between the two points on the chosen route is: "+response.routes[0].legs[0].distance.text; distance += "The aproximative driving time is: "+response.routes[0].legs[0].duration.text; document.getElementById("distance_road").innerHTML = distance; } }); We’ve first created the objects we need. We then set some options for displaying the route, we’ve chosen not to show markers and info boxes (we’ll create our own ones); suppressMarkers: true, suppressInfoWindows: true We’ve created a request object and set the origin and destination for the route and also the travel mode: var request = { origin:location1, destination:location2, travelMode: google.maps.DirectionsTravelMode.DRIVING }; We’ve then called the route function and obtained a response from the server. Using this response we’ve plotted the route on the map and written some info (the total distance and aproximative driving time) in one of the divs we’ve created: directionsDisplay.setDirections(response); distance = "The distance between the two points on the chosen route is: "+response.routes[0].legs[0].distance.text; distance += "The aproximative driving time is: "+response.routes[0].legs[0].duration.text; document.getElementById("distance_road").innerHTML = distance; We’ll also show a line between our points and compute the distance between them (the distance on a straight line, in kilometers). To show a line we’ll use a Polyline object from google maps and set some options for it (the map it belongs to, the path, the width, the opacity and the color): var line = new google.maps.Polyline({ map: map, path: [location1, location2], strokeWeight: 7, strokeOpacity: 0.8, strokeColor: "#FFAA00" }); We’ll now compute the distance between two points using their coordinates and show the result inside the other div tag we’ve created. var R = 6371; var dLat = toRad(location2.lat()-location1.lat()); var dLon = toRad(location2.lng()-location1.lng()); var dLat1 = toRad(location1.lat()); var dLat2 = toRad(location2.lat()); var a = Math.sin(dLat/2) * Math.sin(dLat/2) + Math.cos(dLat1) * Math.cos(dLat1) * Math.sin(dLon/2) * Math.sin(dLon/2); var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); var d = R * c; document.getElementById("distance_direct").innerHTML = "The distance between the two points (in a straight line) is: "+d; The last thing we’ll do is show a marker and an info window for each location. We’ll create two marker objects (the options we’ll set are: the map it belongs to, the coordinates and a title): var marker1 = new google.maps.Marker({ map: map, position: location1, title: "First location" }); var marker2 = new google.maps.Marker({ map: map, position: location2, title: "Second location" }); Next, we’ll create variables to hold the texts to print in the info windows, create two info window objects (we’ll add the texts to them using the content option) and we’ll add two event listeners which will show the appropriate info window when the user clicks on the markers: // create the text to be shown in the infowindows var text1 = ' <div id="content">'+</div> '<h1 id="firstHeading">First location'+ '<div id="bodyContent">'+ '<p>Coordinates: '+location1+'</p>'+ '<p>Address: '+address1+'</p>'+ '</div>'+ '</div>'; var text2 = ' <div id="content">'+</div> '<h1 id="firstHeading">Second location'+ '<div id="bodyContent">'+ '<p>Coordinates: '+location2+'</p>'+ '<p>Address: '+address2+'</p>'+ '</div>'+ '</div>'; // create info boxes for the two markers var infowindow1 = new google.maps.InfoWindow({ content: text1 }); var infowindow2 = new google.maps.InfoWindow({ content: text2 }); // add action events so the info windows will be shown when the marker is clicked google.maps.event.addListener(marker1, 'click', function() { infowindow1.open(map,marker1); }); google.maps.event.addListener(marker2, 'click', function() { infowindow2.open(map,marker2); }); And we’re done! We now have a distance finder! Let me know if you have any questions! |
You are subscribed to email updates from 1stwebdesigner - Graphic and Web Design Blog To stop receiving these emails, you may unsubscribe now. | Email delivery powered by Google |
Google Inc., 20 West Kinzie, Chicago IL USA 60610 |
Comments (0)
Post a Comment