abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 20:55 | Nová verze

    Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.

    Ladislav Hagara | Komentářů: 0
    včera 16:22 | Nová verze

    Byl vydán Mozilla Firefox 138.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 138 je již k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    včera 15:55 | Pozvánky

    Šestnáctý ročník ne-konference jOpenSpace se koná 3. – 5. října 2025 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytvářejí všichni účastníci, se skládá z desetiminutových

    … více »
    Zdenek H. | Komentářů: 1
    včera 15:44 | IT novinky Ladislav Hagara | Komentářů: 2
    včera 13:55 | Komunita

    Richard Stallman přednáší ve středu 7. května od 16:30 na Technické univerzitě v Liberci o vlivu technologií na svobodu. Přednáška je určená jak odborné tak laické veřejnosti.

    Ladislav Hagara | Komentářů: 9
    28.4. 23:33 | Nová verze

    Jean-Baptiste Mardelle se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 25.04.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.

    Ladislav Hagara | Komentářů: 0
    28.4. 17:22 | Zajímavý projekt

    TmuxAI (GitHub) je AI asistent pro práci v terminálu. Vyžaduje účet na OpenRouter.

    Ladislav Hagara | Komentářů: 0
    28.4. 17:00 | Nová verze

    Byla vydána nová verze R14.1.4 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5, Wikipedie). Přehled novinek i s náhledy v poznámkách k vydání. Podrobný přehled v Changelogu.

    Ladislav Hagara | Komentářů: 5
    27.4. 21:33 | Nová verze Ladislav Hagara | Komentářů: 0
    26.4. 23:00 | Komunita

    V Tiraně proběhl letošní Linux App Summit (LAS) (Mastodon). Zatím nesestříhané videozáznamy přednášek jsou k dispozici na YouTube.

    Ladislav Hagara | Komentářů: 0
    Jaký filesystém primárně používáte?
     (58%)
     (1%)
     (9%)
     (21%)
     (4%)
     (1%)
     (2%)
     (0%)
     (1%)
     (3%)
    Celkem 485 hlasů
     Komentářů: 18, poslední 17.4. 12:41
    Rozcestník

    Jak stáhnout Google maps

    13.2.2008 20:09 | Přečteno: 5968× | Ruzne | poslední úprava: 21.5.2009 15:26

    Měl bych se sice šrotit na zkoušky a psát zápočtové programy, ale je to taková nuda... A tak bezcílně brouzdám webem a dnes se mi konečně podařilo najít něco zajímavého. Vždycky jsem si lámal hlavu, jaký mají u Googlů systém pojmenování bloků map a světe div se, dneska jsem to našel úplně náhodou v blogu jednoho machra z Francie.

    Podívejte se na to, je to sice francouzsky, ale i bez její znalosti lze pochopit o co jde. Má tam dokonce funkci v C, která podle zoomu a pravoúhlých souřadnic vrátí adresu odpovídajícího bloku mapy. Napadlo mě tedy, že si prostě musím ty mapy za každou cenu stáhnout a složit z těch bloků :-). Tak jsem si na to napsal prográmek. Ten stáhne bloky wgetem a pomocí montage z ImageMagicku ty bloky poskládá dokupy. A ono to dokonce funguje.

    Tady je ten prográmek. Přeložíte takto: gcc -std=c99 get-map.c -o get-map. Jsem lenoch líná, tak zoom si musíte nastavit v kódu, ostatní už funguje samo. Přeju hodně zábavy!

    Pro ty co mají silné stroje: jak velkou mapu se vám podařilo složit?


    #include <stdio.h>
    #include <string.h>
    
    char* getBlock(char* url, unsigned int x, unsigned int y, unsigned int zoom)
    {
    	strcpy(url, "http://kh*.google.com/kh?n=404&v=3&t=t")[9] = '0' + (x + y) % 4;
    
    	if(!zoom)
    		return url;
    
    	for(unsigned long c = 1 << (zoom - 1); c != 0; c >>= 1)
    		if(y < c)
    		{
    			if(x < c)
    				strcat(url, "q");
    			else
    			{
    				strcat(url, "r");
    				x -= c;
    			}
    		}
    		else
    		{
    			if(x < c)
    			{
    				strcat(url, "t");
    				y -= c;
    			}
    			else
    			{
    				strcat(url, "s");
    				x -= c;
    				y -= c;
    			}
    		}
    	
    	return url;
    }
    
    int main(void)
    {
    	int zoom = 3, num = 0;
    	char cmd1[100], cmd2[100];
    	
    	for(int y = 0; y < 1 << zoom; y++)
    		for(int x = 0; x < 1 << zoom; x++)
    		{
    			sprintf(cmd2, "wget \"%s\" -O google-maps-block-%.6d.jpg", getBlock(cmd1, x, y, zoom), num++);
    			system(cmd2);
    		}
    		
    	sprintf(cmd1, "montage -geometry %dx%d +frame -tile %dx%d -verbose google-maps-block-* map-zoom-%d.jpg", 256, 256, 1 << zoom, 1 << zoom, zoom);
    	system(cmd1);
    	system("rm google-maps-block-*");
    		
    	return 0;
    }

    Tak moje pokusy dopadly následovně :-D. Těch bloků jsem stáhnul několik tisíc. Asi hodím mezi jednotlivé wgety nějaký sleep, a nechám to běžet přes noc.

    Google Error	 
    
        We're sorry...
    
        ... but your query looks similar to automated requests from a computer virus or spyware 
    application. To protect our users, we can't process your request right now.
    
        We'll restore your access as quickly as possible, so try again soon. In the meantime, if you 
    suspect that your computer or network has been infected, you might want to run a virus checker or 
    spyware remover to make sure that your systems are free of viruses and other spurious software.
    
        We apologize for the inconvenience, and hope we'll see you again on Google.

    Největší mapu, co se mi podařilo složit byl zoom = 5, čili 1024 bloků, výsledná bitmapa má 8192x8192 bodů a málem se mi u toho upekl počítač. Paměťové nároky toho programy montage jsou nějaké velké.

           

    Hodnocení: 100 %

            špatnédobré        

    Obrázky

    Jak stáhnout Google maps, obrázek 1

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    13.2.2008 20:44 zde | skóre: 9 | blog: Linuch | Brno
    Rozbalit Rozbalit vše Re: Jak stáhnout Google maps
    Hmm, to jsem netušil že google maps to mají tak kryptický a neefektivní (co bit to jeden znak v url). Seznam.cz to má triviální, až na tu podivnou projekci. Ta se nedá moc pochopit (klasická S-42 to skoro určitě není), ale dá se aproximovat.
    Táto, ty de byl? V práci, já debil.
    13.2.2008 20:54 KS | skóre: 10 | blog: blg | Horní polní u západní dolní
    Rozbalit Rozbalit vše Re: Jak stáhnout Google maps

    Co znak, to 2 bity, ne?

    A jak je to tedy s tím Seznam.cz?

    Pochybnost, nejistota - základ poznání
    andree avatar 13.2.2008 23:05 andree | skóre: 39 | blog: andreeeeelog
    Rozbalit Rozbalit vše Re: Jak stáhnout Google maps
    tak to je fajnove... este k tomu mat kalibraciu a bolo by to dokonale.. nema niekto nieco podobne pre atlas/centrum/seznam/zoznam? :)
    14.2.2008 00:50 Radek Podgorny | skóre: 16
    Rozbalit Rozbalit vše Re: Jak stáhnout Google maps
    seznam.cz hint: UTM zona 33
    13.2.2008 21:39 Stevko
    Rozbalit Rozbalit vše Re: Jak stáhnout Google maps
    To by chcelo stiahnúť napríklad celú Prahu a/alebo Bratislavu. Bude to ľahšie na Sezname alebo na Google Maps?Skúsi to niekto?
    13.2.2008 23:22 KS | skóre: 10 | blog: blg | Horní polní u západní dolní
    Rozbalit Rozbalit vše Re: Jak stáhnout Google maps
    Tak jsem udělal tu Prahu. Není úplně celá, protože na to nemám dost paměti. Stáhnout můžeš zde. Má to 57 MB.
    Pochybnost, nejistota - základ poznání
    14.2.2008 01:12 KS | skóre: 10 | blog: blg | Horní polní u západní dolní
    Rozbalit Rozbalit vše Re: Jak stáhnout Google maps
    Tak ještě jednou Praha v rozlišení 15104x9728, 85 MB. Link
    Pochybnost, nejistota - základ poznání
    14.2.2008 09:38 klassik | skóre: 24 | blog: Klassikov | Praha
    Rozbalit Rozbalit vše Re: Jak stáhnout Google maps
    Dobra prace cece :-)
    V podstatě nic nevím
    13.2.2008 23:30 KS | skóre: 10 | blog: blg | Horní polní u západní dolní
    Rozbalit Rozbalit vše Re: Jak stáhnout Google maps
    Jinak takový obrázek si můžeš udělat taky pomocí toho programu v blogu. Stačí si zjistit kód nějakého bloku vlevo do toho co chceš stáhnout (např. trtqtrtsqtqsrtsttr) a přepočítat ho na pravoúhlé souřadnice pomocí tohohle algoritmu:
    void code2location(char* code)
    {
    	unsigned int x = 0, y = 0;
    	
    	for(int i = 1; i < strlen(code); i++)
    	{
    		x = (x << 1) | ((code[i] == 'r' || code[i] == 's') ? 1 : 0);
    		y = (y << 1) | ((code[i] == 't' || code[i] == 's') ? 1 : 0);
    	}
    	
    	printf("locatiton = [%d; %d], zoom = %d", x, y, strlen(code) - 1);
    }
    

    Výstupem pro trtqtrtsqtqsrtsttr je:

    locatiton = [70761; 44382], zoom = 17

    Získaná čísla potom dosadíš do toho programu a je to.

    Pochybnost, nejistota - základ poznání
    14.2.2008 00:36 Stevko
    Rozbalit Rozbalit vše Re: Jak stáhnout Google maps
    Vidím, kam dosadím zoom. A kam dosadím x a y? A kde nastavím pokiaľ chcem tie bloky (pravý dolný roh)?
    14.2.2008 00:46 KS | skóre: 10 | blog: blg | Horní polní u západní dolní
    Rozbalit Rozbalit vše Re: Jak stáhnout Google maps

    Jde o nastavení levého horního rohu. Je třeba upravit ty vnořene cykly takhle:

    	for(int y = odkud_v_ose_y; y < potud_v_ose_y; y++)
    		for(int x = odkud_v_ose_x; x < potud_v_ose_x; x++)
    

    A potom ještě tenhle řádek:

    sprintf(cmd1, "montage -geometry %dx%d +frame -tile %dx%d -verbose google-maps-block-* map-zoom-%d.jpg", 256, 256, potud_v_ose_x - odkud_v_ose_x, potud_v_ose_y - odkud_v_ose_y, zoom);
    

    Kde location = [odkud_v_ose_x; odkud_v_ose_y] zoom = 17

    Pochybnost, nejistota - základ poznání
    Milan Lajtoš avatar 13.2.2008 22:27 Milan Lajtoš | skóre: 22 | blog: /blog/babraq
    Rozbalit Rozbalit vše Re: Jak stáhnout Google maps
    Bolo by pekne, keby niekto pouzil informacie z clanku o Marble a pokusil sa o to aby Marble dostaval mapy z Google Maps.. To by bolo uzasne, len neviem, ci legalne.. ;)
    “Every great achievement was once considered impossible.”
    13.2.2008 23:13 KS | skóre: 10 | blog: blg | Horní polní u západní dolní
    Rozbalit Rozbalit vše Re: Jak stáhnout Google maps
    Niekto? A preco nie Ty?
    Pochybnost, nejistota - základ poznání
    Milan Lajtoš avatar 13.2.2008 23:49 Milan Lajtoš | skóre: 22 | blog: /blog/babraq
    Rozbalit Rozbalit vše Re: Jak stáhnout Google maps
    Keby som bol kamarat s C++, tak by som to samozrejme vyskusal, no realita je trosku ina.. A samozrejme nenutim nikoho do toho ist - len som dal ideu.. Nic viac..
    “Every great achievement was once considered impossible.”
    belisarivs avatar 14.2.2008 13:58 belisarivs | skóre: 22 | blog: Psychobláboly
    Rozbalit Rozbalit vše Re: Jak stáhnout Google maps
    Poslal jsem odkazy a prelozenou diskusi k tematu vyvojarum Marble.

    Neumim moc programovat, ale domluvit to muzu. Tak snad to nikomu nebude vadit.
    IRC is just multiplayer notepad.
    belisarivs avatar 14.2.2008 14:02 belisarivs | skóre: 22 | blog: Psychobláboly
    Rozbalit Rozbalit vše Re: Jak stáhnout Google maps
    Kdo tomu rozumite vic, tady je ten vyvojar:

    Torsten Rahn - torsten.rahn@credativ.de
    IRC is just multiplayer notepad.
    belisarivs avatar 14.2.2008 14:55 belisarivs | skóre: 22 | blog: Psychobláboly
    Rozbalit Rozbalit vše Re: Jak stáhnout Google maps
    Hm, tak je to nelegalni. Skoda.
    IRC is just multiplayer notepad.
    14.2.2008 16:59 Käyttäjä 11133 | skóre: 58 | blog: Ajattelee menneisyyttä
    Rozbalit Rozbalit vše Re: Jak stáhnout Google maps
    No není nelegální pro to naprogramovat podporu :-) S těmi daty v té mapě je to stejný jako s datovými soubory u slovníků.
    15.2.2008 15:43 R
    Rozbalit Rozbalit vše Re: Jak stáhnout Google maps
    ImageMagick je pomaly a zravy. Dokonca sa aj neuveritelne dlho kompiluje...
    16.2.2008 12:33 Marble | skóre: 27 | blog: marble
    Rozbalit Rozbalit vše Re: Jak stáhnout Google maps
    K té žravosti -- mám pocit, že na většině distribucí je zkompilovaný s tím, že interně používá 16bit na barvu, takže překompilováním by se mělo dát dosáhnout poloviční spotřeby paměti a adekvátně vyšší rychlosti. Použít parametr -depth nepomůže, ten ovlivňuje jen vstup/výstup, takže nakolik tuším, je to fakt třeba nastavit při kompilaci. (Sám jsem to nezkoušel, takže uvedené info je s omezenou zárukou. :))
    17.2.2008 09:43 KS | skóre: 10 | blog: blg | Horní polní u západní dolní
    Rozbalit Rozbalit vše Re: Jak stáhnout Google maps
    Jo to by mohlo být, podívám se na to, díky.
    Pochybnost, nejistota - základ poznání
    16.2.2008 21:56 Geograf
    Rozbalit Rozbalit vše Re: Jak stáhnout Google maps
    Snad to neni moc off topic, ale jen pro informaci: lepsi mapy nez na google ci na seznamu/atlasu najdete na http://geoportal.cenia.cz (pro CR) a http://www.geoportal.sk (pro SR). Je potreba si zapnout rastrovou zakladni mapu v meritku 1:10.000. Ta slovenska sice neni zrovna nejaktualnejsi, ale i mimo intravilan tam vidite detaily, ktere na ortofotu pod vegetaci neuvidite. Stazeni je celkem trivialni, staci orez a odstraneni vodoznaku, coz pri pevnem poctu barev mapy neni tak slozity ukol...

    K vytvareni obrazku z dlazdic: Osobne jsem pouzival metodu, ze stahnu dlazdice a vyrobim HTML stranku s obrovskou tabulkou (pole tabulky=obrazek) a tuto stranku zkonvertuji do PDF. I zde existuji omezeni (rozmer PDF souboru by mel byt mensi nez 200 palcu, pri velikosti vysledneho PDF nad 750 MB jsou s tim problemy). Lepsi varianta je pri stahovani dlazdic vyrobit soubor, ktery da obrazek do souradnicoveho systemu (napr. k obrazku dlazdice_01_01.tif soubor dlazdice_01_01.tfw) a hodit to do nejakeho GISu. Stejne asi nikdo nema monitor, kde by byl obrazek 20.000x20.000 viditelny v meritku 1:1 :-)
    17.2.2008 09:43 KS | skóre: 10 | blog: blg | Horní polní u západní dolní
    Rozbalit Rozbalit vše Re: Jak stáhnout Google maps
    Díky za tipy.
    Pochybnost, nejistota - základ poznání

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.