GMaps, Mapy.cz a AMapy

náhled mapy

Někdy si člověk může chtít porovnat více mapových podkladů nebo mu v nějakém místě vybraná mapa nevyhovuje. Hledat stejné místo v jiném rozhraní může být otrava, proto jsem si připravil mapu založenou na API jednotlivých map, která v jednom rozhraní zobrazuje mapy Googlu, Seznamu a Atlasu.

Jakub Vrána, 18.12.2007

Diskuse

Jan Menšík:

Doufam ze jste si poradne precetl smluvni podminky pro uziti, protoze IMHO porusuteje licenci Seznamu i Atlasu.
# 18.12.2007 10:25:57

Jakub Vrána:

Máte pravdu. Kód jsem předělal tak, aby využíval API jednotlivých rozhraní v souladu s licencí. Zde je původní kód:

function MapyCzProjection() {
this.fromLatLngToPixel = function (latlng, zoom) {
var pixel = MapyCzProjection.prototype.fromLatLngToPixel(latlng, zoom);
pixel.x *= 1.5;
pixel.y *= 1.5;
return pixel;
};
this.fromPixelToLatLng = function (pixel, zoom, unbounded) {
pixel.x /= 1.5;
pixel.y /= 1.5;
return MapyCzProjection.prototype.fromPixelToLatLng(pixel, zoom, unbounded);
};
}
MapyCzProjection.prototype = new GMercatorProjection(18);
window.onload = function () {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById('gmap-mapy'), { mapTypes: [ G_NORMAL_MAP ] });
map.addControl(new GMapTypeControl());
map.addControl(new GLargeMapControl());
map.addControl(new GScaleControl());
map.setCenter(new GLatLng(50.04, 14.33), 16);
mapyCzProjection = new MapyCzProjection();

var mapyCzTileLayer = new GTileLayer(new GCopyrightCollection(), 4, 17);
mapyCzTileLayer.getCopyright = function (bounds, zoom) {
return (zoom <= 5 ? '© Seznam.cz, a.s.' : '© PLANstudio, 2005-07');
}
mapyCzTileLayer.getTileUrl = function (tile, zoom) {
var x = (tile.x - Math.round(36847 / Math.pow(2, 16 - zoom))) * Math.pow(2, 29 - zoom);
var y = (Math.round(49897 / Math.pow(2, 16 - zoom)) - tile.y) * Math.pow(2, 29 - zoom);
return 'http://m' + ((tile.x+tile.y) % 4 + 1) + '.mapserver.mapy.cz/base/' + (zoom - 1) + '_' + x.toString(16) + '_' + y.toString(16);
};
map.addMapType(new GMapType([ mapyCzTileLayer ], mapyCzProjection, 'Mapy.cz'));

var aMapyTileLayer = new GTileLayer(new GCopyrightCollection(), 4, 17);
aMapyTileLayer.getCopyright = function (bounds, zoom) {
return '© 2006, DPA s.r.o.';
}
aMapyTileLayer.getTileUrl = function (tile, zoom) {
var reduce = Math.pow(2, 16 - zoom);
var x = (tile.x - Math.round((zoom >= 10 ? 52386 : 44672) / reduce));
var y = (tile.y - Math.round((zoom >= 10 ? 32825 : 23808) / reduce));
var block = (zoom >= 10 ? Math.floor(y / reduce + (zoom == 17 && x > 1000 ? 1 : 0)) : (zoom == 9 ? 5 : (zoom == 8 ? 1 : 0)));
return 'http://m' + ((tile.x+tile.y) % 4 + 1) + '.amapy.atlas.cz/cache/' + (zoom >= 10 ? 'cr' : 'evropa') + '/2.0/' + reduce + '/0/' + block + '/' + x + '_' + y + '.gif';
};
map.addMapType(new GMapType([ aMapyTileLayer ], mapyCzProjection, 'AMapy'));
}
}
window.onunload = GUnload;
# 18.12.2007 21:04:38

JirkaB:

Tohle už tu bylo, když tady byly knihy Exuperyho apod. Taky to s autorskými právy bylo vachrlaté...
# 16.10.2008 15:19:45

Jakub Vrána:

Současná verze je zcela v pořádku, protože používá API jednotlivých map v souladu s jejich licencí.
# 16.10.2008 15:26:36

Fred:

Tak to je super, zrovna předevčírem jsem prošel asi tak deset poskytovatelů map a kontroloval jejich aktuálnost. Kupodivu nejlepší mapové podklady má O2, ostatní data jsou zastaralá. Tesloval jsem maporamu, centrum, tiscali, seznam, google, routeplanner škodovky a další, výsledky nemám teď u sebe. Nevíte náhodou jaké podklady používá O2? V různých diskuzích jsem nalezl informaci, že používá teleatlas, ale to se mi nezdá, protože teleatlas používá google a jeho data jsou stará. Vyzkoušíte to snadno zkuste nějakou lokalitu pokud možno poblíž Prahy, nebo přímo v Praze a zadejte místo kde se v průběhu posledního půlroku něco postavilo a uvidíte ty rozdíly sám.
# 19.12.2007 14:17:47

zemze:

Docela bych hadal, ze zdrojem O2 je CUZK. Ale napr vystavba Brna je min 1 rok zpatky. Nepredpokladam ze Position je autorem puvodnich geodat.
# 22.12.2007 00:29:11

jk:

Moc pekne, nicmene u seznamackych map nelze prepinat vrstvy.
# 25.12.2007 06:19:57

Jakub Vrána:

Ano, licence bohužel použití leteckých map nedovoluje.
# 27.12.2007 11:09:45

Šedě jsou podbarveny příspěvky, které jste už viděli.

Diskuse je uzavřena.

© 2005 Jakub Vrána. Ukázky map jsou převzaty z mapových serverů - věřím, že to pro ně bude dobrá reklama. Můžeme si tykat.