I got this code from another site and it works great adding markers to that map from a form, but I need to add a single custom marker to mark the actuall address. I’m stumped. Any ideas?
I jacked this from a similar script but it doesnt seem to work
// This function adds the point to the map
addMarker : function( p )
{
// add the marker for the property
var pruIcon = new GIcon( G_DEFAULT_ICON );
pruIcon.image = iconImageUrl;
pruIcon.iconSize = new GSize( 22, 28 );
pruIcon.iconAnchor = new GPoint( 4, 28);
pruIcon.shadow = ""; //a hack to turn off shadow
var markerOptions = { icon : pruIcon };
this.listingMarker = new GMarker( p, markerOptions );
gmn.neighbourhoodMap.addOverlay( this.listingMarker );
gmn.neighbourhoodMap.addControl( new GLargeMapControl() );
gmn.neighbourhoodMap.addControl( new GMapTypeControl() );
gmn.neighbourhoodMap.setCenter( p, zoomLevel );
}
This is the current code.
[removed]
//<![CDATA[
function Markers(color){
// map.closeInfoWindow();
map.getInfoWindow().hide()
if (document.getElementById(color).checked==false) { // hide the marker
for (var i=0;i<gmarkers.length;i++) {
if (gmarkers[i].type==color) {
map.removeOverlay(gmarkers[i]);
}
}
} else { // show the marker again
for (var i=0;i<gmarkers.length;i++) {
if (gmarkers[i].type==color) {
map.addOverlay(gmarkers[i]);
}
}
}
}
//]]>
[removed]
[removed]
//<![CDATA[
GMap.prototype.centerAndZoomOnBounds = function(bounds) {
var center_lat = (bounds.getNorthEast().lat() + bounds.getSouthWest().lat()) / 2.0;
var center_lng = (bounds.getNorthEast().lng() + bounds.getSouthWest().lng()) / 2.0;
var center = new GLatLng(center_lat,center_lng)
map.setCenter(center, map.getBoundsZoomLevel(bounds));
}
//]]>
[removed]
[removed]
//<![CDATA[
// global variables
var gmarkers=[];
var map;
var request;
// var bounds = new GBounds(Number.MAX_VALUE, Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE);
var bounds = new GLatLngBounds();
// Create our "tiny" marker icon
var baseIcon = new GIcon();
baseIcon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
baseIcon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
baseIcon.iconSize = new GSize(12, 20);
baseIcon.shadowSize = new GSize(22, 20);
baseIcon.iconAnchor = new GPoint(6, 20);
baseIcon.infoWindowAnchor = new GPoint(5, 1);
baseIcon.imageMap = [4,0,0,4,0,7,3,11,4,19,7,19,8,11,11,7,11,4,7,0];
baseIcon.transparent = "mapIcons/mm_20_transparent.png";
var icons=[];
function coloredRideshareIcon(iconColor) {
var color;
if ((typeof(iconColor)=="undefined") || (iconColor==null)) {
color = "red"
} else {
color = iconColor;
}
if (!icons[iconColor]) {
var icon = new GIcon(baseIcon);
icon.image = "http://labs.google.com/ridefinder/images/mm_20_"+ color +".png";
icons[iconColor]=icon;
}
return icons[iconColor];
}
function addMarker(lng, lat, title, iconStr) {
var point = new GLatLng(lat, lng);
bounds.extend(point);
var icon = coloredRideshareIcon(iconStr);
var marker = new GMarker(point, icon);
gmarkers.push(marker);
marker.type = iconStr;
GEvent.addListener(marker, "click", function () {
// FF 1.5 fix
var text = "<div style=\"white-space:nowrap;\"><div align=\"center\" class=\"smalltext\">"+title +"</div></div>";
marker.openInfoWindowHtml(text);
});
map.addOverlay(marker);
}
function processXML() {
if (request.readyState == 4) {
if (request.status != 200) {
alert("file not found:"+request.status);
return;
}
var xmlDoc = request.responseXML;
if (!xmlDoc) {
alert("invalid xml file");
return;
}
markers = xmlDoc.documentElement.getElementsByTagName("marker");
for (var i=0; i < markers.length; i++) {
var color= markers[i].getAttribute("icon");
addMarker(parseFloat(markers[i].getAttribute("lng")),
parseFloat(markers[i].getAttribute("lat")),
markers[i].getAttribute("title"), color);
// since all the markers are loaded by default, make sure all the boxes are checked
document.getElementById(color).checked=true;
}
map.centerAndZoomOnBounds(bounds);
}
}
function makeMap() {
map = new GMap(document.getElementById("map"));
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
// map.centerAndZoom(new GPoint(-3.97729, 54.30000), 11);
map.setCenter(new GLatLng(40.72277, -73.946999), 14);
request = GXmlHttp.create();
request.open("GET", "neighborhood.xml", true);
request>
[removed]
