Autor Zpráva
Radicz
Profil *
Dobrý den,

Prosím o radu. Snažím se udělat kruhový polygon do Gmapy. Po kliknutí na mark se objeví kruhový polygon kolem marku na který bylo kliknuto. Bohužel nevím jak udělat, aby když se klikne znovu na mark který už má zobrazený polygon aby se polygon znovu nekreslil, protože když se na bod klikne několikrát kruh začne tmavnout a vypadá to strašně. Potřeboval bych aby se polygon vykreslil jednou a vícekrát už ne. Děkuji Vám za prípadné rady. Ukázka jak to mam teď je ZDE

Zdrojový kod

var PoleBodu = [
  ['Spartakiádní', 50.68504754096478, 13.990276157855988, 4, '<div id="tabs">'+'<ol>'+'<li><a href="#tab-1"><span>Informace</span></a></li>'+'<li><a href="#tab-2"><span>Aktuální stav</span></a></li>'+'<li><a href="#tab-3"><span>Fotografie</span></a></li>'+'</ol>'+'<div id="tab-1">'+'<span>Jedna jedna jedna jedna jedna jedna jedna jedna jedna jedna jedna jedna jedna jedna jedna jedna jedna jedna jedna jedna jedna jedna jedna jedna jedna jedna jedna jedna jedna jedna jedna jedna jedna jedna jedna</span>'+'</div>'+'<div id="tab-2">'+'<span>Prvni Tab 2</span>'+'</div>'+'<div id="tab-3">'+'<span>Prvni Tab 3</span>'+'</div>'+'</div>', '/images/ico.png', '', null],
  ['Dukelských hrdinů', 50.683881737055, 13.998518586158752, 5, '<div id="tabs">'+'<ol>'+'<li><a href="#tab-1"><span>Informace</span></a></li>'+'<li><a href="#tab-2"><span>Aktuální stav</span></a></li>'+'<li><a href="#tab-3"><span>Fotografie</span></a></li>'+'</ol>'+'<div id="tab-1">'+'<span>Dva dva dva dva dva dva dva dva dva dva dva dva dva dva dva dva dva dva dva dva dva dva dva dva dva dva dva dva dva dva dva dva dva dva dva dva dva dva dva dva dva dva dva dva dva dva dva dva dva dva dva dva </span>'+'</div>'+'<div id="tab-2">'+'<span>Druhej Tab 2</span>'+'</div>'+'<div id="tab-3">'+'<span>Druhej Tab 3</span>'+'</div>'+'</div>', '/images/ico.png','', null]
];

function initialize()
{
  var Nastaveni = {
    zoom: 12,
    center: new google.maps.LatLng(50.68681982238762, 14.000144215759285),
    mapTypeId: google.maps.MapTypeId.ROADMAP
  }
  
  map = new google.maps.Map(document.getElementById("mapa"), Nastaveni); 
  InfoOkno = new google.maps.InfoWindow({maxWidth:350});
     
  for (var i = 0; i < PoleBodu.length; i++) 
  {
    VytvorBody(PoleBodu[i]);
  }
 }


function VytvorBody(PoleBod) 
{                                                 
  var icona = new google.maps.MarkerImage(PoleBod[5], new google.maps.Size(39, 47), new google.maps.Point(0,0), new google.maps.Point(0, 33));
  var stin = new google.maps.MarkerImage(PoleBod[6], new google.maps.Size(35, 35), new google.maps.Point(0,0), new google.maps.Point(-5, 27));
  var klikarena = {coord: [0,0,40,40],type: 'rect'};
  
  var pozice = new google.maps.LatLng(PoleBod[1], PoleBod[2]);  
  var bod = new google.maps.Marker({
    position: pozice,
    map: map,
    name: PoleBod[0],
    shadow: stin,
    /*icon: icona, */
    shape: klikarena,
    zIndex: PoleBod[3]
  });
    
  PoleBod[7] = bod; 
     
  google.maps.event.addListener(bod, 'click', function() 
  {       	
  	InfoOkno.close();
  	VytvorInfoOkno(InfoOkno, map, this, PoleBod);
  	OzariProstor(2000, map, bod);                             //Volam funkci pro polygon
    $("#tabs").tabs();  
  });
          
  var tooltip = new Tooltip({map: map});
  
  tooltip.bindTo('position', bod, 'position');
  tooltip.bindTo('text', bod, 'name');
  	 
  google.maps.event.addListener(bod, "mouseover", function() { tooltip.onAdd(); }); 
  google.maps.event.addListener(bod, "mouseout", function()  { tooltip.onRemove(); }) 
}

function OzariProstor(radius, map, bod)       //funkce tvorici polygon
{  
   var circle = new google.maps.Circle({
      map: map,
      radius: radius
  }); 
  circle.bindTo('center', bod, 'position');
}

function VytvorInfoOkno(InfoOkno, where, which, PoleBod)
{
  if (PoleBod[7] == which ) 
  {
		InfoOkno.setContent(PoleBod[4]); 
		InfoOkno.open(where, which);
  }
} 


Radicz
Profil *
Omlouvám se ukázak je ZDE
Radicz
Profil *
Tak naposled, ukázka je ZDE - > doufam že se se ještě neztrapnil natolik aby mi někdo odpověděl :-D
fireball_
Profil
Zdravím,

upravil bych tu funkci pro ozáření prostoru
function OzariProstor(radius, map, bod)       //funkce tvorici polygon
{  
  if(!bod.highlighted){
       bod.highlighted = true;
       var circle = new google.maps.Circle({
          map: map,
          radius: radius
      }); 
      circle.bindTo('center', bod, 'position');
  }
}
Radicz
Profil *
Děkuji mockrát

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0