Google haritaları işaretleyici (ve bilgi) gizlemek ve bilgi olan bir alan üzerine tıkladığınızda sadece göstermek

2 Cevap php

Bunun yerine varsayılan simgesini kullanarak google maps şeffaf png eklemek istiyorum. Benim örnek kodda ben bir png adlı transparent.png için varsayılan simgeyi değiştirmek istiyorsunuz nerede?

Teşekkürler!

 function onLoad() {
      map = new GMap(document.getElementById("div_map"));
      map.addControl(new GSmallMapControl());
      map.addControl(new GMapTypeControl());
      map.setCenter(new GLatLng(54, -3), 5);

      getMarkers();

      GEvent.addListener(map, "click", function(overlay, point) {
	      if (overlay){	// marker clicked
		      overlay.openInfoWindowHtml(overlay.infowindow);	// open InfoWindow
	      } else if (point) {	// background clicked

	      }
      });
    }

	function getMarkers(){
	    var urlstr="read.php";
	    var request = GXmlHttp.create();
	    request.open('GET', urlstr , true);	// request XML from PHP with AJAX call
	    request.onreadystatechange = function () {
			if (request.readyState == 4) {
				var xmlDoc = request.responseXML;
				locations = xmlDoc.documentElement.getElementsByTagName("location");
				markers = [];
				if (locations.length){
					for (var i = 0; i < locations.length; i++) { // cycle thru locations
						markers[i] = new GMarker(new GLatLng(locations[i].getAttribute("lat"),locations[i].getAttribute("lng")));
						// Add attributes to the marker so we can poll them later.
						// When clicked, an overlay will have these properties.
						markers[i].infowindow = "This is "+locations[i].getAttribute("name");

						// Useful things to store on a marker (Not needed for this example, could be removed)
						// Tells you what index in the markers[] array an overlay is
						markers[i].markerindex = i;
						// Store the location_id of the location the marker represents.
						// Very useful to know the true id of a marker, you could then make
						// AJAX calls to the database to update the information if you had it's location_id
						markers[i].db_id = locations[i].getAttribute("location_id");

						map.addOverlay(markers[i]);

					}
				}
			}
		}
		request.send(null);
    }

2 Cevap

Normal bir GIcon.image bir belirteç olarak neredeyse görünmez bir PNG dosyasını kullanabilirsiniz, sadece tıklama hedef olarak kullanılmak üzere% 100 saydam olmayan bir şey var ki dikkatli olmak gerekir. Bu da GIcon.image veya GIcon.transparent olabilir. Bazı tarayıcılar% 100 şeffaf nesneler üzerinde tıklama işlemez.

Bu yaklaşımın bir sorun tıklanabilir bölge zum seviyesi değiştikçe değişir olmasıdır. Al alternatif bir yaklaşım bilgi var alanlarını işaretlemek için görünmez tıklanabilir çokgenler çizmek olacaktır. API çokgen tıklandığında olup olmadığını tespit tarayıcınızda güvenmek değil çünkü bu durumda poligonları% 100 şeffaf olabilir.

Yani işaretleyici tüm göstermek istemiyorum? Sadece açılan başlatarak tepki? Ben özel açık PNG ile simgesini takas ediyorum.

http://code.google.com/apis/maps/documentation/reference.html#GIcon