csempeletöltés térképszerverről 2 koordináta alapján

Fórumok

Sziasztok.

Adott 2 db koordináta, melyek különbözőek. Egyértelműen meghatároznak egy téglalapot.
Ezen két koordináta alapján szeretnék letölteni googlemaps és OSM szerverekről térképet.

Példa:
44.98614779,29.097912597
45.198630298,29.488853456

Sok ilyenem van, ezért keresek rá egy olyan megoldást, ami egyértelműen csak a területet tartalmazza a képfájlban.
Beegerészni egy GUI-s programmal nem megoldás, inkább scriptelhetőt szeretnék.
Szerintetek előállítható egy link 2 koordináta alapján, ami egyből letölthető?

Hozzászólások

Ha nem is pont erre a kérdésre válasz, mégis találtam egy egyszerű és hatékony általános megoldást csempés/térképes megjelenítőkből az adatok lementéséhez, talán valaki használni tudja:

A legegyszerűbb, ha képlopóval/printscreen-el lementjük, de ugye kicsi a képernyő felbontása, hogy sok adat rajta legyen.
Win alatt van egy egyszerű programocska, az Inifinte Screen: http://ynea.futureware.at
Ezzel meg lehet növelni egy adott (böngésző) ablak méretét pl. 10000x10000 pixelesre és le is lehet vele menteni a megnagyobbított ablak tartalmát.
Google chrome alatt van, hogy feketét mentett, ilynekor Firefox-al ment.

Vannak könyvtári weboldalak, ahol olyan anyagok vannak fent, pl régi tervrajzok, beszkennel iratok, stb. amiket meg lehet nézni, de menteni nem, pláne nem nagy felbontásban.
Ezzel az egyszerű trükkel viszont azok is működnek... Saját felhasználásra persze.

W.

Ezt anno maskepp oldottam meg.
Firebuggal bezoomoltam a megfelelo helyre a terkepen, megneztem a net fulon a terkepreszletek cimeit a ket sarkan, wgettel letoltottem a koztes csempeket, aztan imgmagickkel osszeraktam egy keppe. Persze ha tul nagy teruletet toltesz le, akkor gyanussa valsz, es kitilt a Google. (ilyenkor jon jol a tor proxy, ezert van benne az ip cim valtozasanak ellenorzese)
A csempeknel van egy x,y,z koordnata, ahol az x a kelet-nyugat irany (hosszusagi), y az eszak-del (szelessegi), es z a zoom. A csempemeret fix, es egy zoomlevelnel a "kozelebbi" zoomlevel kepeibol pont 2x2 fer bele. (szoval egy 17-es zoomleveles 256x256-os kep a 18-as zoomlevelu 512x512-es keppel azonos teruletrol ad infot)
A geoid torzitasa nekem nem kellett, annal kisebb teruletet toltottem le.

Nemtom mukodik-e meg, itt a kod, 10 eve meg futott :)


cat googletolt.sh

#!/bin/bash

z=18
serv=1

if [ $# -lt "5" ]
then
  printf "Parameterszam!!"
  printf "${0} dir x1 y1 x2 y2 [z=18] [serv=1]"
  exit 1
fi


dir="$1"
x1="$2"
y1="$3"
x2="$4"
y2="$5"

if [ $# -ge "6" ]
then
  z="$6"
  
  if [ $# -ge "7" ]
  then
    serv="$7"
  fi
fi

mkdir -p "$dir"

for x in `seq ${x1} ${x2}`
do
  for y in `seq ${y1} ${y2}`
  do
    fn="${dir}/${x}_${y}_${z}.jpg"
    echo "$fn"
    while ( test ! -f "$fn" || file "$fn" | grep -v JPEG >/dev/null )
    do
      curl "http://khm${serv}.google.com/kh/v=39&hl=en&x=${x}&s=&y=${y}&z=${z}&s=" >"$fn"
      if file "$fn" | grep -v JPEG >/dev/null
      then
        echo "rossz, varunk"
        ip=`curl http://www.cmyip.com/ 2>/dev/null | grep title |sed -e 's/^.* \([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*$/\1/g'`
        echo IP: "$ip"
        ujip="$ip"
        while [ "$ujip" == "$ip" ]
        do
          sleep 300
          ujip=`curl http://www.cmyip.com/ 2>/dev/null | grep title |sed -e 's/^.* \([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*$/\1/g'`
          echo IP: "$ujip"
        done
      fi
    done
    echo "letoltve"
  done
done

Es igy hivod meg:

http_proxy=127.0.0.1:8118
export http_proxy
./googletolt.sh kerepesi 144967 91669 144981 91676
(a kerepesi temeto koordinataival es azzal a konyvtarral)

Ez meg osszerakja:
montage `\ls -1 1*.jpg|sed -e "s/\(.*\)_\(.*\)_\(.*\)/\2_\1_\3/"|sort -n|sed -e "s/\(.*\)_\(.*\)_\(.*\)/\2_\1_\3/"` -tile 15x8  -geometry 256x256+0+0 osszerakott.jpg

Azota valtoztatnek rajta par dolgot, mondjuk a curl-nek valami aktualis bongeszos user-agent stringet adnek, esetleg ha valtozott a cmyip, vagy a G formatuma, akkor azt utana kell huzni. Plusz azota azert egy csomo bash kodot irtam, ma szebben nezne ki. De kb. ennyi, betettem screenbe, bootkor elindult, es idovel elkeszult a dolgaival. (ja, a serv-nel tudod kivalasztani, hogy a muholdkepek erdekesek, vagy a feldolgozott terkep kell)

Ha a muholdkepek nem kellenek, csak a terkep, en inkabb becache-elnem az Androidos appba a kerdeses terkepreszeket. Kevesebb helyet foglalnak, tud navigalni is rajta, meg minden egyeb elonye megvan.
Vagy feltennek egy offline terkepet (here pl.). Bar ez nalad nem megoldas, mert kajakos terkepuk nincs (mondjuk mas cegnek hajos terkepe van, de az zsebbenyulos).

--
When you tear out a man's tongue, you are not proving him a liar, you're only telling the world that you fear what he might say. -George R.R. Martin

Hello!

Esetleg próbáld meg QGIS-sel.
Az általad említett térképi alapokat a lenti kóddal tudod a térképforrások közé importálni.
Igaz az ilyentén felhasználás valószínűleg egy-két EULA meg miegyéb pontot sért...
Ezek után az általad kívánt területre ki tudod importálni a képet, ha a projekt vetületet WGS84(EPSG:4326)-ra. Ekkor már az általad megadott, szélesség-hosszúság adatoknak megfelelően tudod képfájlba exportálni a térképet. Ha esetleg nem GIS szoftverben vagy olyan szoftverben nyitod meg ami kezeli a GeoTIFF formátumot, akkor kicsit furán nézhet ki az exportált kép. Ezen úgy tudsz javítani, hogy a áttranszformálod őket WGS84/Pseudo Mercator vetületbe(EPSG:3857).
Scriptelni Pythonban tudod a QGIS-t, ha sok képről van szó így meg tudod oldani.

Kód az importhoz:

sources = []
sources.append(["connections-xyz","Google Maps","","","","https://mt1.google.com/vt/lyrs=m&x=%7Bx%7D&y=%7By%7D&z=%7Bz%7D","","19","0"])
sources.append(["connections-xyz","Google Satellite", "", "", "", "https://mt1.google.com/vt/lyrs=s&x=%7Bx%7D&y=%7By%7D&z=%7Bz%7D", "", "19", "0"])
sources.append(["connections-xyz","Google Terrain", "", "", "", "https://mt1.google.com/vt/lyrs=t&x=%7Bx%7D&y=%7By%7D&z=%7Bz%7D", "", "19", "0"])
sources.append(["connections-xyz","Google Terrain Hybrid", "", "", "", "https://mt1.google.com/vt/lyrs=p&x=%7Bx%7D&y=%7By%7D&z=%7Bz%7D", "", "19", "0"])
sources.append(["connections-xyz","Google Satellite Hybrid", "", "", "", "https://mt1.google.com/vt/lyrs=y&x=%7Bx%7D&y=%7By%7D&z=%7Bz%7D", "", "19", "0"])
sources.append(["connections-xyz","OpenStreetMap Standard", "", "", "OpenStreetMap contributors, CC-BY-SA", "http://tile.openstreetmap.org/%7Bz%7D/%7Bx%7D/%7By%7D.png", "", "19", "0"])
sources.append(["connections-xyz","OpenStreetMap H.O.T.", "", "", "OpenStreetMap contributors, CC-BY-SA", "http://tile.openstreetmap.fr/hot/%7Bz%7D/%7Bx%7D/%7By%7D.png", "", "19", "0"])
sources.append(["connections-xyz","OpenStreetMap Monochrome", "", "", "OpenStreetMap contributors, CC-BY-SA", "http://tiles.wmflabs.org/bw-mapnik/%7Bz%7D/%7Bx%7D/%7By%7D.png", "", "19", "0"])

for source in sources:
connectionType = source[0]
connectionName = source[1]
QSettings().setValue("qgis/%s/%s/authcfg" % (connectionType, connectionName), source[2])
QSettings().setValue("qgis/%s/%s/password" % (connectionType, connectionName), source[3])
QSettings().setValue("qgis/%s/%s/referer" % (connectionType, connectionName), source[4])
QSettings().setValue("qgis/%s/%s/url" % (connectionType, connectionName), source[5])
QSettings().setValue("qgis/%s/%s/username" % (connectionType, connectionName), source[6])
QSettings().setValue("qgis/%s/%s/zmax" % (connectionType, connectionName), source[7])
QSettings().setValue("qgis/%s/%s/zmin" % (connectionType, connectionName), source[8])

iface.reloadConnections()

Köszi, belemélyedek hamarosan.
Nemrég leszenvedtem egy javascriptes layeres goglemapra rávetítős megoldással, de ezzel csak átnézeti térképet készítek, a java akkor jön, ha közelítek. Akkor már nem lesz mindegy, rendesen állnak-e a csempék egymásra 1/10-re átlapolva. Meg a számuk is növekszik.

Igen, sértek eulát. Ki nem ? :)
Nem torpedót készítek...

Viking programmal próbáltam georeferálni.
3 ótán keresztül kísérleteztem, képtelen voltam rájönni, hogyan kell, így maradtam a webalapú javascriptes módszernél, ami agyhalál.

Vikinggel próbálkozott már valaki?

(qgis felmászott ugyan a gépemre, de nem tudja indítani a python modulokat)

Félek, mire megoldom a problémámat, addigra a webalapúval mindent megcsinálok.

Ennyi a manual a georeferáláshoz:
http://gentoo.osuosl.org/distfiles/viking.pdf
Se példa, semmi. Pont a világfájl előállítása a cél, de ez meg azt kéri, hogy csináljam meg én ezt: https://en.wikipedia.org/wiki/World_file
:(