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í
×
dnes 09:00 | Nová verze

Byla vydána nová verze linuxové distribuce BunsenLabs Linux s předkonfigurovaným správcem oken Openbox. Její název je Lithium a založena je na Debianu 10 Buster. Přehled novinek v poznámkách k vydání. BunsenLabs Linux je nástupcem dnes již nevyvíjené linuxové distribuce CrunchBang (zkráceně #!).

Ladislav Hagara | Komentářů: 0
dnes 08:00 | Nová verze

Po 9 týdnech vývoje od vydání Linuxu 5.7 oznámil Linus Torvalds vydání Linuxu 5.8 (LKML). Přehled nových vlastností a vylepšení na stránce Linux Kernel Newbies.

Ladislav Hagara | Komentářů: 0
dnes 07:00 | Komunita

Omar Roth, hlavní vývojář Invidious, alternativního webového frontendu k YouTube, oznámil, že kvůli přehlcení a nedostatku motivace projekt opouští a zřejmě skončí také oficiální instance invidio.us (k 1. září, resp. API k 1. říjnu); stále poběží další instance nebo je možné nasadit vlastní.

Fluttershy, yay! | Komentářů: 0
včera 14:22 | Zajímavý projekt

Byly vyhlášeny výsledky soutěže JS1024 2020 aneb zajímavé programy napsané v JavaScriptu o velikosti maximálně 1 024 bajtů. Více o vítězném pianu na stránkách autora.

Ladislav Hagara | Komentářů: 0
včera 01:11 | Zajímavý software

Felix Rieseberg na Twitteru oznámil, že po Windows 95 dostal do Electronu také počítač Macintosh Quadra 900 s operačním systémem Mac OS 8 a celou řadou aplikací. Zdrojové kódy, jakož i připravené balíčky, jsou k dispozici na GitHubu pod názvem macintosh.js.

Ladislav Hagara | Komentářů: 0
1.8. 23:11 | Nová verze

Projekt Debian aktualizoval obrazy stabilní větve „Buster“ (10.5). Součástí jsou opravy především zavaděče systému GRUB2 týkající se zranitelnosti „BootHole“.

Fluttershy, yay! | Komentářů: 0
31.7. 22:44 | Zajímavý projekt

V akci Humble Double Fine 20th Anniversary Bundle je možné zakoupit balík vesměs multiplatformních her od studia Double Fine, a to ve formě klíčů pro Steam nebo v některých případech i přímo ke stažení; za cenu aspoň 0,87-8 eur, kterou jde rozdělit mezi vydavatele, zprostředkovatele a charitu. Akce končí 13. srpna.

Fluttershy, yay! | Komentářů: 0
31.7. 17:22 | Nová verze

Nová čísla časopisů od nakladatelství Raspberry Pi: MagPi 96 (pdf), HackSpace 33 (pdf) a Wireframe 40 (pdf).

Ladislav Hagara | Komentářů: 1
31.7. 12:55 | Komunita

Je poslední pátek v červenci, a proto všem systémovým administrátorům vše nejlepší k dnešnímu Dni systémových administrátorů (System Administrator Appreciation Day).

Ladislav Hagara | Komentářů: 6
31.7. 01:11 | Nová verze

Po téměř pěti měsících vývoje od vydání verze 245 byla vydána nová verze 246 správce systému a služeb systemd (GitHub, NEWS).

Ladislav Hagara | Komentářů: 34
Dokážete si představit, že by váš hlavní počítač (desktop, notebook) byl v současné době založen na architektuře jiné než x86 (x86_64)? Například ARM, POWER, RISC-V,…
 (12%)
 (9%)
 (56%)
 (18%)
 (5%)
Celkem 77 hlasů
 Komentářů: 6, poslední včera 03:02
Rozcestník

Jak stáhnout Google maps

13.2.2008 20:09 | Přečteno: 5816× | 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.