ugrás a tartalomhoz

Google maps API probléma

Blackfriar · 2007. Nov. 15. (Cs), 23.06
Sziasztok!

Remélem, nem raktam rossz helyre a kérdésem.
Összedobtam egy kódot, aminek a lényege, hogy egy javascript függvényt meghívva, az betölti a kódot egy felugró ablakba. Off-line indítva a dolgot minden rendben van, szépen bejön a térkép, hibajelzés nincs. Ami fura, hogy csak IE alatt működik, FF alatt változó hibaüzeneteket ad. Ha feltöltöm a szerverre, akkor teljes a csőd. IE alatt ez a hibaüzenet: "GMap2 is undefined"
function terkep(x,y){
o='toolbar=0,location=0,directories=0,status=0,menubar=0,resizable=0,scrollbars=0,width=650,height=650';
wd=window.open("","",o);
wd.document.write('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'+
'<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="hu" lang="hu">'+
'<head>'+
'<meta http-equiv="content-type" content="text/html; charset=utf-8"/>'+
'<title>Google Maps</title>'+
'<script src="http://maps.google.com/maps?file=api&amp;v=2.x&amp;key=ABQIAAAAe_BFfTavDl8l_OezWaTQZhTmu_R15qLW_Sgfr0SyViKJuwyS0RS4psLtCX9DO-9R-Kp_STwVxACNtg" type="text/javascript"></script>'+
'<script type="text/javascript">'+
'window.moveTo((screen.width-650)/2,(screen.height-650)/2);'+
'var map; var geocoder;'+
'function load() {'+
'if (GBrowserIsCompatible()) {'+
'map = new GMap2(document.getElementById("map"));'+
'var point = new GLatLng('+x+','+y+');'+
'map.setCenter(point, 11);'+
'map.addOverlay(new GMarker(point));'+
'map.addControl(new GLargeMapControl());'+
'geocoder = new GClientGeocoder();'+
'}}'+

'function addAddressToMap(response) {'+
      'map.clearOverlays();'+
      'if (!response || response.Status.code != 200) {alert("Elnézést, de a cím nem létezik, vagy nem található.");} '+
	'else {'+
        'place = response.Placemark[0];'+
        'point = new GLatLng(place.Point.coordinates[1],'+
                            'place.Point.coordinates[0]);'+
	'marker = new GMarker(point);'+
        'map.addOverlay(marker);'+
        'marker.openInfoWindowHtml(place.address+"<br>"+place.Point.coordinates[1]+", "+place.Point.coordinates[0]);'+
      '}'+
    '}'+

'function showLocation() {var address = document.forms[0].q.value;geocoder.getLocations(address, addAddressToMap);}'+
'function findLocation(address) {document.forms[0].q.value = address;showLocation();}'+

'</script>'+
'<style type="text/css">'+
'body{margin:5px;padding:0px}'+
'.gomb{font:11px arial;width:65px;}'+
'.mez{font:11px arial;}'+
'</style>'+
'</head>'+
'<body onload="load()" onunload="GUnload()">'+
'<div id="map" style="width:640px;height:610px"></div>'+
'<form style="margin:0px" action="#" onsubmit="showLocation(); return false;">'+
'<div align="center" style="margin-top:7px;font:11px arial">a keresett cím:&nbsp;&nbsp;'+
'<input type="text" name="q" value="" class="mez" size="40" />&nbsp;&nbsp;'+
'<input class="gomb" type="submit" name="find" value="keresés" />'+
'</div>'+
'</form>'+
 
1

:)

decker · 2007. Nov. 15. (Cs), 23.42
és mind teszt mind éles környezetet beregisztráltad?
2

nem értem

Blackfriar · 2007. Nov. 15. (Cs), 23.47
A regisztrálás során meg kell adni webcímet, ahol használni akarod. Az ott kapot key-t használom.
Off-line indítás esetén 2 különböző kulccsal is ment a dolog.
3

idáig jutottam

Blackfriar · 2007. Nov. 16. (P), 11.51
A 9. sorban levő hosszú szkript sortól akad ki a FF. Vajon az IE miért nem?

Ha nem document.write-tal töltöm be az ablak tartalmát, hanem window.open-nel csinálom, akkor minden OK.
De mivel egy változónak szeretnék mindig más-más értéket adni, ezért a window.open nem jöhet szóba.
4

Lezáró html tagek

minczerl · 2007. Nov. 17. (Szo), 13.05
Eszképeld(Hogy mondjuk ezt magyarul?) a document.writeban a lezáró html tageket </script> => <\/script>, <\div> => <\/div> stb..., legalábbis nekem ez megoldotta a problémát. Igaz egy másik js fájlal próbáltam azzal müködött.
5

megvéd

Hodicska Gergely · 2007. Nov. 17. (Szo), 13.23
Általában a "megvéd" szó használatos, de azért kicsit furán hangzik.


Üdv,
Felhő
6

helyzet változatlan

Blackfriar · 2007. Nov. 17. (Szo), 19.04
Köszi a választ, de a probléma továbbra is fennáll.

Úgy tűnik, hogy a head-ben levő hosszú szkript sornál (ami a key-t is tartalmazza) akad el a dolog.
7

itt valami bűzlik

Blackfriar · 2007. Nov. 20. (K), 20.38
Hölgyeim és Uraim !
Akkor összegezzük a helyzetet. Azt hiszem mondhatjuk, hogy egy viszonylag nem túl bonyolult problémára ennyi okos ember nem talált (vagy nem akart, mert ez is benne van a pakliban) megoldást. Akkor még is a Google háza táján bűzlik valami? Nem tudom, nem is tisztem eldönteni. Minden esetre az is furcsa, hogy az egyetlen segítő szándékú válaszoló is olyan trükköket javasolt, hogy eszképeljek. Na amikor már ilyen tanácsokat kap az ember, ott már nagy a baj. Az IE hackkekről, meg egyéb nyalánkságokról már nem is beszélve.
Én nem azt mondom, hogy csak hibátlan kód kerülhet ki az ember keze alól, de ami jelenleg a számítástechnikában van, azt jóindulattal is csak kuplerájnak lehet nevezni. És ezt jószándékkal mondom.
8

Google Maps

janoszen · 2007. Nov. 20. (K), 21.19
Vagy csak lehet, hogy nincs elég ember, aki Google Maps-el foglalkozott. Én személy szerint még soha nem kényszerültem rá.
9

Bűzlik bizony

zila · 2007. Nov. 20. (K), 21.34
Ha nem document.write-tal töltöm be az ablak tartalmát, hanem window.open-nel csinálom, akkor minden OK.

Mintha ez arra utalna, hogy a javascriptedben tolsz el valamit és nem a google maps api a rossz... Próbáltad már debugolni? Firefox-hoz nagyon jó hibakeresési eszközök vannak, egyet mondok: FireBug.
10

IE7 kussol

Blackfriar · 2007. Nov. 20. (K), 21.49
IE7 alatt semii hibajelzés, minden hibátlanul működik.
Akkor most melyik a sz@r, az IE vagy a FF? Ha engem kérdeztek, akkor mindkettő :))

zila ! Különben ott a kód fent (igaz, az alja lemaradt, biztos ott a hiba), egyszerű megtalálni a hibát. :))
11

Na ne haragudj...

janoszen · 2007. Nov. 20. (K), 21.54
Most remélem én értem félre, ugye nem azt mondod zilának, hogy másolja ki a kódodat, csináljon hozzá tesztkörnyezetet és ő debuggolja ki helyetted?
12

nem

Blackfriar · 2007. Nov. 20. (K), 22.00
Nem akartam panaszkodni, hogy már egy hete vacakolok a témával és kezdek belefáradni.
Egyébiránt nem akartam zilára rakni semmit. Szusszanok egyet aztán debuggolok.
13

Ne másban keresd a hibát

zila · 2007. Nov. 20. (K), 22.49
Ha kiteszed publikus oldalra szívesen ránézek.

Másrészről:
Kicsit furcsának tartom, hogy mindenben keresed a hibát (sőt, gyűjtőfórumot indítanál a sok bugos programnak) kivéve a saját kódodban. Elsőként ugye: szar a google api (biztos nem hibátlan, de hogy szar?), most már ott tartasz, hogy szar az IE is meg a Firefox-is. Nyilván. De ebben a konkrét esetben szinte biztos, hogy a te kódod rejti a bugot. Annál is inkább, mert javascrpt nélkül működik, te magad mondtad. Betetted egy függvénybe és nem működik. A másik topikban is azért javasoltam, hogy elsőként a saját portánkon sepregessünk. Én mindig úgy állok a dologhoz, ha valami nem megy az általam írt kódban, hogy biztosan én hibáztam, ez az esetek 99.999% százalékában bebizonyosodik. A maradék esetben valóban valaki más hibázott. :)
14

köszi

Blackfriar · 2007. Nov. 21. (Sze), 08.04
Igazán rendes vagy zila, kora este felrakom, de ha adsz egy e-mail címet, akkor elküldöm. Merthogy PC-n indítva a dolgot IE alatt működik.

A francba, ilyenkor reggel gépfegyverkezű vagyok, úgyhogy vigyázzatok. :-)
15

próba

Blackfriar · 2007. Nov. 21. (Sze), 17.53
Szia zila !
Akkor ide feltettem a dolgot.
Előre is köszönöm, hogy bíbelődsz vele.
16

köszönet

Blackfriar · 2007. Nov. 28. (Sze), 17.50
Azt hiszem a tisztesség úgy kívánja, hogy itt a nyílvánosság előtt is kifejezzem hálás köszönetemet ZILA-nak, amiért időt és fáradtságot nem kímélve segített a probléma megoldásában.

az alábbi, paraméterezett módon kell meghívni azt a fájlt, ami a térképet megjeleníti (ahol x és y a két koordináta):
function ter(x,y){
o='toolbar=0,location=0,directories=0,status=0,menubar=0,resizable=0,scrollbars=0,width=650,height=650';
window.open('terkep.htm?lat='+x+'&lng='+y+'','',o);}
abba a fájlba, ami a térképet megjeleníti, az alábbi scriptrészletet kell beszúrni:
var lat = 0;
var lng = 0;
var query = location.search.substring(1);
var pairs = query.split("&");
for (var i=0; i<pairs.length; i++) {
var pos = pairs[i].indexOf("=");
var argname = pairs[i].substring(0,pos).toLowerCase();
var value = pairs[i].substring(pos+1).toLowerCase();
if (argname == "lat") {lat = parseFloat(value);}
if (argname == "lng") {lng = parseFloat(value);}
};
valamint
var point = new GLatLng(lat,lng);
Ezen a módon egyébként tetszőleges számú paramétert lehet átadni a térképnek.
17

Azért az API-val is gond lehet...

Fedor · 2007. Dec. 7. (P), 12.18
Sziasztok!

Azért az API-val is gond lehet... Egy ehhez hasonló térképes alkalmazáson dolgozom:

www.hotspotter.hu

Megigényeltem a kódot, beraktam, feltöltöttem. Nézem Firefox-szal: oké. Nézem IE7-tel: semmi. Hibaüzenet mint fent ("GMap2 is undefined"). Gyanút fogtam, és megnéztem IE-vel a Hotspotter-t is. Nem megy. Sima térképet már raktam be így korábban egy másik oldalba, akkor teszteltem, ment mind a két nagy böngésző alatt. Most az se megy IE7-en. Ciki.

És akkor most?

Üdv,
Fedor
18

Ez a legkönnyebb

zila · 2007. Dec. 7. (P), 12.39
Ha a google maps megy IE7 alatt, akkor biztosan jó az api. A legkényelmesebb dolog azt mondani, szar az api... Szerintem meg valamit eltol a hotspotter is meg te is. (persze lehet hiba az api-ban, van is ld. ismert hibák)

Ez is egy érdekes thread:
http://groups.google.kg/group/Google-Maps-API/browse_thread/thread/1f7816f0d177e229

Google:
http://www.google.com/search?client=safari&rls=en-us&q=google+maps+api+ie7+GMap2+is+not+defined&ie=UTF-8&oe=UTF-8
19

Nem kényelemből...

Fedor · 2007. Dec. 7. (P), 13.15
Ha csak az enyém nem működne, akkor igazad is lehetne. De olyan dolgok nem mennek IE alatt, amelyek pár hónapja még minden gond nélkül futottak. A hotspotterről nem nyilatkozhatom, de az én régebbi térképemen azóta nem változtattam, tehát vagy a Google-nél változtott valami, vagy egy IE frissítés rontotta el a dolgokat.

Amúgy megnéztem a maps.google.com-ot: az se megy az IE7 alatt. Azért ezt nehezen lehetne rám fogni :-)
20

update

Fedor · 2007. Dec. 7. (P), 17.34
UPDATE:

Körülnéztem pár oldalon, semmilyen beépített Google térkép nem müxik IE alatt. Lehet, hogy a böngésző a hunyó? A verziószáma: 7.05730.11

UPDATE 2.:

Frissítettem az Explorert. A maps.google.com/ már bejön, De az API-val foglalkozó Google aloldalba (code.google.com/apis/maps/), vagy más egyéb oldalba illesztett térképek már nem, és ugyanez a helyzet az Operával is, más gépen is. Oké, hogy nagyon sokan használnak Firefoxot (én is, ezért nem tűnt ez fel idáig), de azért...
21

Megjavultak

Fedor · 2007. Dec. 10. (H), 18.04
Valamit csinálhattak a nagy vízen túl a hétvégén, mert a Google Map API-t tartalmazó oldalak újra rendesen mennek IE alatt is...