Thursday 15 May 2014

javascript google maps only one function works at once, rest not -



javascript google maps only one function works at once, rest not -

at start want tell don't have experience javascript. found script , alter want. seek load google map on 2 diffrent views (i work on codeigniter) 1 map load. when go sec view map dont display. heres code:

header:

<body onload='mapastart()' onunload='gunload()'>

first view:

<div id="domeeting" style="width: 400px; height: 400px;"> </div> <input type="hidden" id="lat" name="lat"/><br /><br /><br /> <input type="hidden" id="lng" name="lng"/><br /><br />

second view:

<div id="rejestracja" style="width: 400px; height: 400px;"> <!-- tu będzie mapa --> </div> <input type="hidden" id="lat" name="lat"/><br /><br /><br /> <input type="hidden" id="lng" name="lng"/><br /><br />

footer:

<script src="//code.jquery.com/jquery-1.10.2.js"></script> <script src="//code.jquery.com/ui/1.11.0/jquery-ui.js"></script> <!-- google maps --> <!-- rejestracji --> <script type='text/javascript'> <!-- var mapa; var marker; function mapastart() { if(gbrowseriscompatible()) { mapa = new gmap2(document.getelementbyid("rejestracja" || "domeeting")); mapa.setcenter(new glatlng(52.348763181988076, 18.61083984375), 6, g_hybrid_map); mapa.addcontrol(new glargemapcontrol()); mapa.addcontrol(new gmaptypecontrol()); marker = new gmarker(mapa.getcenter(),{icon: marker, draggable: true}); mapa.addoverlay(marker); // zdarzenia dla markera gevent.addlistener(marker,'drag',uaktualnijwspolrzedne); gevent.addlistener(marker,'click',function() { marker.openinfowindowhtml(marker.opis); }); gevent.trigger(marker,'drag'); // zdarzenia dla mapy gevent.addlistener(mapa,'click',function(o,p) { if(p) { marker.setpoint(p); uaktualnijwspolrzedne(); } }); } } function uaktualnijwspolrzedne() { var input_lat = document.getelementbyid('lat'); var input_lng = document.getelementbyid('lng'); var punkt = marker.getlatlng(); input_lat.value = punkt.lat(); input_lng.value = punkt.lng(); } </script> <!-- api google maps --> <script src='http://maps.google.com/maps?file=api&amp;v=2.x&amp;sensor=false&amp;key=abqiaaa aska3kydm631cgf6rw_grbbrbrxpdm9jp6g1mf9ylmfwuiyzt2 br5ltrn1m4mp2hliyywcc1aqlxz3a&hl=pl' type='text/javascript'></script>

and notice when type @ first rejestracja here:

mapa = new gmap2(document.getelementbyid("rejestracja" || "domeeting"));

map load in view "rejestracja" id in sec view id "domeeting" not. if reverse element opposite situation

in javascript, || can used "or" operator, or can used homecoming first non "falsy" value. in code:

mapa = new gmap2(document.getelementbyid("rejestracja" || "domeeting"));

the function phone call document.getelementid retrieve "rejestracja" because first value in status returns truthy value. (truthy means not false, null, undefined, 0, empty string or nan).

i not sure how google maps api works, if cannot take 2 dom elements, need store each map in own variable:

var map1 = new gmap2(document.getelementbyid("rejestracja")); var map2 = new gmap2(document.getelementbyid("domeeting"));

or extract code own function , pass in each dom element.

update: here illustration of mean - work if mapa variable not used outside of function initialized.

function mapastart() { if(gbrowseriscompatible()) { var map1 = new gmap2(document.getelementbyid("domeeting")); var map2 = new gmap2(document.getelementbyid("rejestracja")); initializemap(map1); initializemap(map2); } } function initializemap (mapa) { mapa.setcenter(new glatlng(52.348763181988076, 18.61083984375), 6, g_hybrid_map); mapa.addcontrol(new glargemapcontrol()); mapa.addcontrol(new gmaptypecontrol()); // remainder of original mapastart function goes here }

i hope helps!

javascript google-maps-api-2

No comments:

Post a Comment