I have renamed the html file this time. I am talking to my IT to have it posted on a public server,,
-- You received this message because you are subscribed to the Google Groups "Google Maps JavaScript API v3" group. To view this discussion on the web visit https://groups.google.com/d/msg/google-maps-js-api-v3/-/I_l8g0Sbxa0J. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-maps-js-api-v3?hl=en.
<html> <head> <title>Google Maps JavaScript API v3: Custom Marker Demo</title> <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?v=3.5&sensor=true"></script> <script> function CustomMarker(latlng, map) { google.maps.OverlayView.call(this); this.latlng_ = latlng; // Once the LatLng and text are set, add the overlay to the map. This will // trigger a call to panes_changed which should in turn call draw. this.setMap(map); } CustomMarker.prototype = new google.maps.OverlayView(); CustomMarker.prototype.draw = function() { var me = this; var color ="#00ff00" var html = "<div style='position: absolute; margin: 0; padding:0; background-color:transparent; background-image: url(" + "BusWithBump_N_48x64.png" + ");height: 63px; width: 48px;'>" + "<div>" + "<div class='busLabel' style='position: absolute; margin: 0; padding:0; margin-left:10px; margin-top:2px; text-align:left; background-color:" + color + ";width:27px; height:1px; overflow: hidden; text-indent:11px;' ></div>" + "<div class='busLabel' style='position: absolute; margin: 0; padding:0; margin-left:9px; margin-top:3px; text-align:left; background-color:" + color + ";width:29px; height:1px; overflow: hidden; text-indent:11px;' ></div>" + "<div class='busLabel' style='position: absolute; margin: 0; padding:0; margin-left:8px; margin-top:4px; text-align:left; background-color:" + color + ";width:31px; height:3px; overflow: hidden; text-indent:11px;' ></div>" + "<div class='busLabel' style='position: absolute; margin: 0; padding:0; margin-left:7px; margin-top:7px; text-align:left; background-color:" + color + ";width:33px; height:3px; overflow: hidden; text-indent:11px;' ></div>" + "<div class='busLabel' style='position: absolute; margin: 0; padding:0; margin-left:6px; margin-top:10px; text-align:left; background-color:" + color + ";width:35px; height:2px; overflow: hidden; text-indent:11px;' ></div>" + "<div class='busLabel' style='position: absolute; margin: 0; padding:0; margin-left:2px; margin-top:1px; font-size:7pt; text-align:center; width:41px; height:10px; overflow: hidden;' >" + 20 + "</div>" + "</div>"; //html += "<div class='busLabel' style='position: absolute; margin: 0; padding:0; color: black; margin-top:16px;margin-left:4px;'>20</div>"; html += "</div>" + "<div><div class='busLabel' style='background-color: black; color:white; margin-top:8px; margin-left:8px; margin-right: 35px;'>" + "<div class='busLabel' style='position: absolute; margin-top:35px; font-size:7pt; text-align:center; width:30px; height:10px; overflow: hidden;' >" + 1054 + "</div></div></div>"; //@3 issue 3 center the busId // Check if the div has been created. var div = this.div_; if (!div) { // Create a overlay text DIV div = this.div_ = document.createElement('DIV'); // Create the DIV representing our CustomMarker div.style.border = "1px red solid"; div.style.position = "absolute"; div.style.paddingLeft = "0px"; div.style.cursor = 'pointer'; //div.innerHTML = html; does not work // creating another DIV and assign inner HTML does not work either. var imgDiv = document.createElement("div"); imgDiv.innerHTML = html; div.appendChild(imgDiv); /* *********** THIS WORKS ******* * *********** comment the above imgDiv creation, html and appending (3 lines) * *********** uncomment this park to see it working ok. * *********** problem seems to be my custom image html * var img = document.createElement("img"); img.src = "http://gmaps-samples.googlecode.com/svn/trunk/markers/circular/bluecirclemarker.png"; div.appendChild(img);*/ google.maps.event.addDomListener(div, "click", function(event) { google.maps.event.trigger(me, "click"); }); google.maps.event.addDomListener(div, "mouseover", function(event) { google.maps.event.trigger(me, "mouseover"); }); google.maps.event.addDomListener(div, "mouseout", function(event) { google.maps.event.trigger(me, "mouseout"); }); // Then add the overlay to the DOM var panes = this.getPanes(); panes.overlayImage.appendChild(div); } // Position the overlay var point = this.getProjection().fromLatLngToDivPixel(this.latlng_); if (point) { div.style.left = point.x + 'px'; div.style.top = point.y + 'px'; } }; CustomMarker.prototype.remove = function() { // Check if the overlay was on the map and needs to be removed. if (this.div_) { this.div_.parentNode.removeChild(this.div_); this.div_ = null; } }; CustomMarker.prototype.getPosition = function() { return this.latlng_; }; var map; var overlay; var iw; function initialize() { var opts = { zoom: 4, center: new google.maps.LatLng(-25.363882,131.044922), mapTypeId: google.maps.MapTypeId.ROADMAP } map = new google.maps.Map(document.getElementById("map"), opts); iw = new google.maps.InfoWindow({ content: "Hello" }); var count = 0; overlay = new CustomMarker(map.getCenter(), map); google.maps.event.addListener(overlay, "click", function() { iw.setContent("you clicked me!") iw.open(map, overlay); }); google.maps.event.addListener(overlay, "mouseover", function() { count++; iw.setContent("this is mouseover "+count); iw.open(map, overlay); }); google.maps.event.addListener(overlay, "mouseout", function() { //iw.setContent("this is mouseout"); iw.close(); }); } function addOverlay() { overlay.setMap(map); } function removeOverlay() { overlay.setMap(null); } </script> </head> <body onload="initialize()"> <div id="map" style="width: 320px; height: 480px;">map div</div> <div> <input type="button" value="Add Marker" onclick="addOverlay()"> <input type="button" value="Remove Marker" onclick="removeOverlay()"> </div> </body> </html>
<<attachment: BusWithBump_N_48x64.png>>
