function addMarkers() { mySelect = document.getElementById('selection'); Mount_Vernon = [];New_Harmony = [];Poseyville = [];Wadesville = [];mySelect.options[mySelect.options.length] = new Option("Mount Vernon schools",'all=Mount_Vernon'); mySelect.options[mySelect.options.length] = new Option("New Harmony schools",'all=New_Harmony'); mySelect.options[mySelect.options.length] = new Option("Poseyville schools",'all=Poseyville'); mySelect.options[mySelect.options.length] = new Option("Wadesville schools",'all=Wadesville'); mySelect.options[mySelect.options.length] = new Option("---------------------------",''); Mount_Vernon[Mount_Vernon.length] = createMarker(new GPoint(-87.89636993,37.97933960),"
",iconRd); mySelect.options[mySelect.options.length] = new Option("Farmersville Elementary School",'Mount_Vernon=' + Mount_Vernon.length); Mount_Vernon[Mount_Vernon.length] = createMarker(new GPoint(-87.89310455,37.93616867),"",iconRd); mySelect.options[mySelect.options.length] = new Option("Hedges Central Elementary School",'Mount_Vernon=' + Mount_Vernon.length); Mount_Vernon[Mount_Vernon.length] = createMarker(new GPoint(-87.75210571,37.94196320),"",iconRd); mySelect.options[mySelect.options.length] = new Option("Marrs Elementary School",'Mount_Vernon=' + Mount_Vernon.length); Mount_Vernon[Mount_Vernon.length] = createMarker(new GPoint(-87.88792419,37.93743515),"",iconGr); mySelect.options[mySelect.options.length] = new Option("Mount Vernon High School",'Mount_Vernon=' + Mount_Vernon.length); Mount_Vernon[Mount_Vernon.length] = createMarker(new GPoint(-87.88357544,37.93761826),"",iconBl); mySelect.options[mySelect.options.length] = new Option("Mount Vernon Junior High School",'Mount_Vernon=' + Mount_Vernon.length); New_Harmony[New_Harmony.length] = createMarker(new GPoint(-87.91719818,38.11460114),"",iconGr); mySelect.options[mySelect.options.length] = new Option("New Harmony Elementary & High School",'New_Harmony=' + New_Harmony.length); Poseyville[Poseyville.length] = createMarker(new GPoint(-87.78517914,38.17093658),"",iconRd); mySelect.options[mySelect.options.length] = new Option("North Elementary School",'Poseyville=' + Poseyville.length); Poseyville[Poseyville.length] = createMarker(new GPoint(-87.80972290,38.14083862),"",iconBl); mySelect.options[mySelect.options.length] = new Option("North Posey Junior High School",'Poseyville=' + Poseyville.length); Poseyville[Poseyville.length] = createMarker(new GPoint(-87.80822754,38.14075089),"",iconGr); mySelect.options[mySelect.options.length] = new Option("North Posey Senior High School",'Poseyville=' + Poseyville.length); Wadesville[Wadesville.length] = createMarker(new GPoint(-87.76291656,38.07406235),"",iconRd); mySelect.options[mySelect.options.length] = new Option("South Terrace Elementary School",'Wadesville=' + Wadesville.length); Mount_Vernon[Mount_Vernon.length] = createMarker(new GPoint(-87.90782166,37.92891312),"",iconRd); mySelect.options[mySelect.options.length] = new Option("West Elementary School",'Mount_Vernon=' + Mount_Vernon.length); } // End addStateMarkers JavaScript Function // Takes an array of markers and centers/zooms map based on marker range function centerByArray(myArray, recenter, newMaxMin) { if (newMaxMin == true) reMaxMin(myArray); for (var i = 0; i < myArray.length; i++) { var markLng = myArray[i].getPoint().x; var markLat = myArray[i].getPoint().y; if (markLat > maxLat) maxLat = markLat; if (markLng > maxLng) maxLng = markLng; if (markLat < minLat) minLat = markLat; if (markLng < minLng) minLng = markLng; } if (recenter) reCenterMap(); } // Reinit max/mins function reMaxMin(myArray) { maxLng = myArray[0].getPoint().x; maxLat = myArray[0].getPoint().y; minLng = myArray[0].getPoint().x; minLat = myArray[0].getPoint().y; } // Recenter map based on global max/mins function reCenterMap() { var bounds = new GLatLngBounds(); bounds.extend(new GLatLng(minLat, minLng)); bounds.extend(new GLatLng(maxLat, maxLng)); 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); var zoom = map.getBoundsZoomLevel(bounds); map.setCenter(center,zoom); //map.setCenter(center,10); /* var center = new GPoint( (maxLng + minLng)/2, (maxLat+minLat)/2 ); var delta = new GSize(maxLng - minLng, maxLat - minLat); var minZoom = map.spec.getLowestZoomLevel(center, delta, map.viewSize); if (minZoom < 4) minZoom = 4; // Lowest possible zoom is 4 map.centerAndZoom(center, minZoom); */ } // Fires when drop down list of schools changes function selectChange(selection) { var myVal = selection.options[selection.selectedIndex].value; map.closeInfoWindow(); // Add entire array based on variable type if (myVal.indexOf('all') != -1 && myVal != 'all') { var temp = myVal.split('='); var showArray = temp[1]; // If Array is > X amount of markers, then open in a new page if (eval(showArray).length > 20) // New window depends on whether or not we're on the search page if (location.href.indexOf('nearby_schools.php') == -1) window.open(location.href + '/map/' + showArray); else window.open('/search////' + showArray); map.removeOverlays(Mount_Vernon); map.removeOverlays(New_Harmony); map.removeOverlays(Poseyville); map.removeOverlays(Wadesville); map.addOverlays(eval(showArray)); centerByArray(eval(showArray), true, true); // Center and zoom on set of markers } // Add individual markers if (myVal.indexOf('all') == -1 && myVal != 'all' && myVal.length) { var temp = myVal.split('='); var myArray = temp[0]; var myIndex = parseInt(temp[1]) - 1; document.getElementById('map').width = "750"; map.removeOverlay(eval(myArray)[myIndex]); map.addOverlay(eval(myArray)[myIndex]); GEvent.trigger(eval(myArray)[myIndex],'click'); } // Show all markers if (myVal == 'all') { cntMarker = 0; reMaxMin(Mount_Vernon);map.removeOverlays(Mount_Vernon); map.removeOverlays(New_Harmony); map.removeOverlays(Poseyville); map.removeOverlays(Wadesville); map.addOverlays(Mount_Vernon); centerByArray(Mount_Vernon, false, false); cntMarker += Mount_Vernon.length; map.addOverlays(New_Harmony); centerByArray(New_Harmony, false, false); cntMarker += New_Harmony.length; map.addOverlays(Poseyville); centerByArray(Poseyville, false, false); cntMarker += Poseyville.length; map.addOverlays(Wadesville); centerByArray(Wadesville, false, false); cntMarker += Wadesville.length; centerByArray(Mount_Vernon,true, false); if (cntMarker > 20) // New window depends on whether or not we're on the search page if (location.href.indexOf('schools-by-distance') == -1) window.open(location.href + '/map/all'); else window.open('/search////all'); } }