Meglepően egyszerű a Google térkép szolgáltatásának integrálása egy weboldalba, mindössze egy iframe elemre van szükségünk, aminek code behindból ügyesen beállítjuk az src attribútumát. Nem is értem, miért nem használják ezt több helyen.
Történetesen az a feladatom, hogy egy GridView-ban lévő Contact rekordok Address mezőjében lévő címet a grid alatt egy térképen jelenítsem meg. A kérképet egy iframefogja tartalmazni, amihez odacsaptam a runat=”server” attribútumot, hogy kódból el tudjam érni:
<iframe runat="server" id="ifMap" width="500" height="300"></iframe>
Ezt a trükköt egyébként bármelyik HTML elemmel el lehet játszani, szerver oldalon HtmlGenericControl lesz belőle.
Ezért a GridView kapott egy gombot, ami ráadásul a CommandArgument segítségével viszi magával a címet is az eseménykezelőbe:
<asp:Button runat="server"
CommandArgument='<%# Eval( "Address" ) %>'
CommandName="ShowMap"
Text="Térképre" />
A gomb kattintást a RowCommand eseménykor lehet kezelni:
if( e.CommandName == "ShowMap" )
{
this.ifMap.Attributes[ "src" ] = String.Format(
CultureInfo.InvariantCulture,
@"http://maps.google.com/maps?q={0}&output=embed",
e.CommandArgument );
}
A dolognak tehát az az érdekessége, hogy egy sima URL-be be tudok fűzni egy teljes címet, például “Budapest, Magyar Tudósok krt. 2.” és Google Maps rátalál a helyre. Sőt, rátalál olyan földrajzi nevekre is, amiket magyarul és angolul máshogy hívunk: Magyarország, Brazília, Peking.
Persze a térkép adatbázisa nem tökéletes, rólunk például azt hiszi, hogy itt tanyázunk, pedig valójában ebben az épületben lehet minket megtalálni:
Villamosmérnök, a BME Automatizálási és Alkalmazott Informatikai Tanszékén webportálok fejlesztését oktatja. 2000 óta foglalkozik a Microsoft .NET platformjával, melynek meghonosításában jelentős szerepet vállalt előadóként, konzulensként és A .NET Framework és programozása című könyv társszerzőjeként. Az MSDN Kompetencia Központon belül a Portál Technológiák Csoport vezetője, szakterülete web alapú rendszerek fejlesztése és üzemeltetése. 2004-ben Magyarországon elsőként kapta meg a Most Valuable Professional címet, majd 2005 óta a Microsoft magyarországi regionális igazgatója. Publikációi a Technet Magazinban, az MSDN Kompetencia Központ honlapján és szakmai blogjában olvashatóak.
-
Vannak felhasználói alkalmazások ahol fontos lehet, hogy egyszerre csak egyet lehessen elindítani belőlük. Tervezői ilyennek ítélték például a Winampot, vagy a uTorrent-et. De hogyan tegyük saját alkalmazásunkat "egypéldányossá" könnyen?
Tovább »
-
2008. november 11.-én a Sugárban volt egy Windows Server 2008-cal foglalkozó Informatika Tisztán rendezvény. Tartottam ott egy, a Windows Server Core-ral foglakozó előadást…
Tovább »
Írja meg Ön is véleményét!
Hozzászólásokat csak regisztrált, bejelentkezett felhasználóktól tudunk elfogadni!
Hozzászólások
NJoco
(2009.04.07. 10:11:36)
Az API key nélküli használat szerintem jogi aggályokat is felvet, ettől függetlenül valóban elég egyszerű így használni.
A static map valóban koordinátákkal dolgozik, ebben igazad van, én sem nagyon értem miért nem integrálják össze a geokódolással.
Az, hogy nem interaktív bizonyos esetekben még előny is lehet szerintem, hiszen csak egy egyszerű kép, nem kell iframe, nem kell 10 tonna js...
De persze mindig a célhoz kell eszközt választani és nem fordítva :)
Balássy György (MS RD, ASP.NET MVP, MCTS)
(2009.04.06. 13:12:08)
Szia Joco!
Teljesen igazad van, ez hekkelés, ezért került rá a Dávid Zoli által kitalált "Gyors és ronda" címke. A Static Map API-val három problémám van: 1 - Kell hozzá API key. 2 - Úgy látom, hogy a címet (város, utca, házszám) nem teszi bele az URL-be, hanem koordinátákká alakítja, amit én adatkötésnél nem tudok megtenni. 3 - Nem interaktív.
Egyébként az általad javasolt valóban finomabb módszer, ha lehet, inkább azt kell használni, mert az API, ez meg csak megfigyelésen alapul.
NJoco
(2009.04.06. 10:19:00)
Hű, azért ez elég durva hekkelés. Vannak ennél finomabb módszerek. Erre a célra szerintem legjobb a static map api.
http://njoco.blogspot.com/2008/02/blog-post.html
Sőt még a kinézetet is megadhatod:
http://njoco.blogspot.com/2008/09/tetszleges-tpus-statikus-trkpek.html