16. března 2010

Zjistěte reálnou vzdálenost dvou míst pomocí funkce [Google Spreadsheet]


Je mi potěšením že Vám tímto mohu představit první českou funkci do Google Spreadsheetu. (možná i první středoevropskou až evropskou, v tuto chvíli (16-03-2010 21:04) je celkem osm 3rd parties scripts od 7 autorů - dle jmen odhadu USA, China, možná UK)

Pojďme se podívat co umí. Její použití je prosté (a "na") *
Do funkce =getDistance(A,B) zadáte dvě místa, z nichž se vypočítá vzdálenost
  • místa zadávejte do uvozovek (můžete používat i adresování např. G26)
  • vzdálenost se vypočítá na základě tras z Google Maps (takže žádné matematické hříčky se souřadnicemi - proto v nadpisu mám slovo reálnou)
  • Pokud používáte celou adresu, doporučuji zadat i název města  - Václavské náměsti 15, Praha
  • vzdálenost je v km, a počítám že jde o typ cesty autem
!(* ne-matematický vtip) **


Nyní se podíváme na návod pro nepolíbené. (jak přidat tuto funkci - a být políben)

1) Vytvořte si nový Google Spreadsheet

2) V našem případě si vytvoříme tabulku se záhlavím: Odkud - Kam - Vzdálenost, které vyplníme patřičnými daty (stačí jen první dva sloupce ;-)



2) Minulý týden Google přinesl do Spreadsheetu novinku - databázi skriptů (něco jako Macro na desktopu). Takže zvolte Vložit > Script


3) V novém okně máte na výběr z katalogu. Abychom si ušetřili čas, napište to vyhledávacího okénka "codeasi" (nebo nic neříkajíci "distance"). Po kliknutí na instalovat se Vám zobrazí vítězná hláška o úspěšné implementaci scriptu.



3) Využití je už jednoduché. Pracujete s funkcí jako s jakoukoliv jinou v Spreadsheetu. Do buňky C2 zadejte =getDistance(A2,B2).Po chvilce přemýšlení (scriptu ;) dostanete požadovan číslo vzdálenosti v km.


4) Po najetí na pravý dolní roh buňky kde máme script se kurzor změní na křížek. Pokud táhnete směrem dolu, je script kopírován, takže vzdálenosti se vztahuji k řádku.


5) Funkci jsem vytvořil cíleně/boekm jako stavební kámen pro daleko zajímavější aplikaci. Snad v jednom z příštích článků...

Pokud chcete vytvořit svoji funkci tak ji v přiloženém editoru vytvoříte, a pak necháte publikovat (poslat do adresáře). Funkce dostane speciální číslo a čekáte na schválení (které trvá cca 6dní - počítám že to dělá non-robot). Jde vlastně o JavaScript, běžící na straně serveru.

Pokud máte tipy na jiné funkce či vylepšení - pište do komentářů. Samozřejmě poskytuji i konzultace pokud potřebujete konkrétní neveřejnou funkci řešící konkrétní problem, tak emailem na codeasi@gmail.com


** matematický vtip x matematický vtip 




Zajímá tě více?

4 komentáře:

  1. Jsi borec :) Gratuluju k zařazení.

    OdpovědětVymazat
  2. Moc pekne. Nebyl by k dispozici zdrojak?
    Michal

    OdpovědětVymazat
  3. Pekny skript. Jen hazel obcas chyby. Pokud se zada misto vzdalenejsi nez 1000km tak se ukaze 1km, duvod je, ze google vraci hodnotu 1,000 parseFloat to zarizne na 1.

    reseni:
    var out = str.substring(od+10,az).replace(",","");

    Pak jeste pro mesta pro ktera neni schopen Google naplanovat cestu to hodi chybovou hlasku, napr, pro Moskva, Tokio nebo New York, ale to je chyba Googlu a ne skriptu :)

    OdpovědětVymazat
  4. Díky za info a radu jak opravit. Už jsem to přepsal, teď čeká na znovu publikování

    OdpovědětVymazat