June 30, 2009 § 2 Comments
I am summarizing a session on Google Map API Performance here. This help you to evaluate using Google Map for iphone app.
The total sequence of loading the script and resources is about 4.6 sec on avg web. However, it takes 18 sec to load on Android and iphone.
This v3 offers a few features – markers, infowindows, geocoding.
On v2 GMarker class is designed for features not for performance. Each marker is consisting of up to 5 divs. To show 10,000 GMarkers, you are loading 50,000 DOM nodes in the browser.
Google extends GOverlay class to create a custom lightweight marker. This MakerLight, overlay contains only 2 divs per marker.
Google Flash API is faster in rendering but it suffers from a slow DOM.
June 25, 2009 § Leave a comment
Google Wave is releasing Wave Samples Gallery where developers can submit your app with your developer profile, sample info and screen captures. You can browse app or filter by the language or API used.
Wave supported the following APIs:
Wave supports the following languages used.
Currently Wave Sandbox doesn’t support forgot password or your gmail account. You’ll get a unique @wavesandbox.com acct. If you forget your password like myself, you would have to contact email@example.com
June 5, 2009 § Leave a comment
May 24, 2009 § Leave a comment
You want to build an iphone app that open Google map. You would like to show the map in certain ways.
You can consider using Google Map API. Sometimes you would use Google Map Parameters rather than Google API where certain featurse are not supported in API eg Google map displaying driving directions.
It all starts with maps.google.com (.co.uk etc).
Exaction location can be specified as latitude and longitude in
1) decimal form
2) degrees, minutes and seconds
52 7 22.8N,2 27 21.6W
52 7 22.8,-2 27 21.6
3) degrees and minutes
52 7.38N,2 27.36W
52 7.38,-2 27.36
Any text added in parentheses () is displayed in the info window and sidebar in bold.
The words “to” and “from” cause the driving directions function to be activated.
The word “near” or “loc:” causes the local search function to be activated.
%20%26%20 in URLs, not
+&+ otherwise the ampersand gets treated as a separator) can be used between the names of two streets to specify an intersection.
A location can also be specified after an @, in decimal form (@52.123,-2.456). This gives a lower zoom level than using the same values without the at sign. Using this format interferes with other options of the query parameter. The @ sign instead of “near” or “loc:” tends to cause only a single business result to be displayed.To place a custom labeled marker at an arbitrary location,
- The label can’t be a country name, or no marker will be shown; but it can be empty, when the co-ordinates will be used.
prefix the query with “sky:” to search KML content created for Sky,
q=sky:Leo, designed for use with Google Sky and KML output.
near= Can be used as the location part of a query instead of putting the whole thing into q=.
g= a address/location, provides extra context for the q param
ll= Latitude,longitude of map centre – Note the order. Only decimal format is accepted.
If this is used without a query, then the map is centred at the point but no marker or info window is displayed.
sll= Latitude,longitude of the point from which the business search should be performed. You could use this to perform an off-centre busness search. Google use it so “link to this page” can record a map that has had the centre moved after performing a business search. When requesting a route map.getBounds().getSouthWest().toUrlValue() returns the same value maps.google.com uses.
spn= Approximate lat/long span. The zoom level will be adjusted to fit if there’s no z= parameter. Use this Mapki tool to find a lat and long.
sspn= Stands for “Screen span”. Map bounds dimensions in Degrees, to calculate this use:
newGLatLng(map.getBounds().getNorthEast().lat() − map.getBounds().getSouthWest().lat(),map.getBounds().getNorthEast().lng() − map.getBounds().getSouthWest().lng()).toUrlValue()
latlng= This is a weird one. It takes three numbers separated by commas. The first two numbers (presumably representing latitude and longitude multiplied by 1000000) are ignored. The third number seems to be a Google internal “Company ID” number for a particular business. E.g.
latlng=0,0,14944637421527611642 represents Blackpool Community Church. Specifying this parameter performs a Google Search for pages that reference that business, and displays a tiny map. Other parameters, in particular q=, must have valid contents (but need not relate to the target business) for this to work.
cid= Similar to latlng, but generating a different map size. It takes three numbers separated by commas. The first two numbers (presumably representing latitude and longitude multiplied by 1000000) are ignored. The third number seems to be a Google internal “Company ID” number for a particular business. E.g.
cid=0,0,14944637421527611642 represents Blackpool Community Church. Specifying this parameter displays a large map of the identified company location. Other parameters, in particular q=, must have valid contents (but need not relate to the target business) for this to work.
geocode= Concatination of “geocode” encoded values for waypoints used in Directions. Appears when waypoints in “from: blah to: blah” are potentially ambigious. E.g,
is the end result from joining the “geocode” values for each waypoint with %3B.
- t= Map Type. The available options are “m” map, “k” satellite, “h” hybrid, “p” terrain.
- z= Sets the zoom level.
- layer= Activates overlays. Current options are “t” traffic, “c” street view. Append (e.g.
layer=tc) for simultaneous.
- lci= Activates layers of tiles, e.g.
lci=lmc:panoramio,lmc:wikipedia_enfor Photos and Wikipedia English.
- view= Can be used to select text view (view=text) or the normal map view (view=map).
- saddr= Source address. Use this when asking for driving directions.
- Any text added in brackets is displayed in the sidebar in bold.
- daddr= Destination address(es). Use this when asking for driving directions
- Any text added in brackets is displayed in the sidebar in bold.
- “+to:” clauses can be appended to the destination to request multiple destination routing, like this
- Text in brackets can also be added to the “+to:” clauses.
- mra ?? what does mean this route parameter? known possible values=dm, dpe, cc, ls, …
- mrcr ?? what does mean this route parameter? known possible values=0
- mrsp ?? what does mean this route parameter? known possible values=0,1
- mrad= Additional destination address.
- If you’ve got three points in your trip you can use saddr=, daddr= and mrad= instead of “+to:” clauses.
- dirflg Route type.
- dirflg=h Switches on “Avoid Highways” route finding mode.
- dirflg=t Switches on “Avoid Tolls” route finding mode.
- dirflg=r Switches on “Public Transit” – only works in some areas.
- dirflg=w Switches to walking directions – still in beta.
- via= Comma separated list of intermediate addresses for directions, that should be ‘via points’. In the example
via=1,3addresses 1 and 3 will be via points without their own entry in the sidebar. The start (0), the 2nd intermediate (2) and the end (4) will be full addresses.
- doflg= Distance Units. (Defaults to prevalent units in country of origin.)
- doflg=ks ??
- doflg=ptk Outputs directions in metric (km).
- doflg=ptm Outputs directions in imperial (miles).
- cbll= Latitude,longitude for Street View.
- cbp= Street View window that accepts 5 parameters:
- Street View/map arrangement, 11=upper half Street View and lower half map, 12=mostly Street View with corner map
- Rotation angle/bearing (in degrees)
- Tilt angle, -90 (straight up) to 90 (straight down)
- Zoom level, 0-2
- Pitch (in degrees) -90 (straight up) to 90 (straight down), default 5
- panoid= Panorama ID. The ID of the current nearby panorama object. Panorama objects ids are used in the little arrows you can click on in Street View to move you to the next object/property. Eg
May 17, 2009 § Leave a comment
This is a very useful article describing how to create and store dataset on Google Spreadsheet. Using a customized gadget, the data will be converted into your choice of JSON, or XML, or MySQL statement.
This simple data conversion will allow you to take advantages of Google Spreadsheet features to organize, sort and modify the data. Then you are free to extract the data into a more useful format for mashup.
The article is here.