The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
#1
|
|||
|
|||
Static page help
I have a chunk of code that I want to embed into a static page for a special google map. I have a plain html document that was fully working. inserted the script src in the head of my header include template. then I put the rest of the info into the php static page I created in my site. here is the complete code. can someone tell me what I might need to break up different for it to work properly? The map doesnt display at all.
Im not sure how to change the body onload for it to work either. Thanks, Clayton HTML Code:
<html xmlns="http://www.w3.org/1999/xhtml"> <head><title>Local Search</title> <script src="http://maps.google.com/maps?file=api&v=2.208&key=ABQIAAAAxe4iZkOij75xEW-P40HsMRTNwwIDB3X2PJ0_br5ee44ut2pm8RRiA2ku6cwsTFtWlCY7kcRdnEPIDA" type="text/javascript"></script> <script src="http://www.google.com/uds/api?file=uds.js&v=1.0&key=key=ABQIAAAA56VORbMXHHZDQW--tkfsVhRPDJc4Qn4hoLuv9RM61ENX1JJLTBSNSGHUDP_MmNTc3QFBOUJJsiqbhg" type="text/javascript"></script> <script src="http://www.google.com/uds/solutions/localsearch/gmlocalsearch.js?adsense=pub-1227201690587661" type="text/javascript"></script> <script type="text/javascript" language="JavaScript"> var myMap = null; var localSearch = null; var myQueryControl = null; function displayMap(){ myMap = new GMap2(document.getElementById("map")); myMap.setCenter(new GLatLng(31.805122,-96.399603), 10); myMap.addControl(new GSmallMapControl()); myMap.addControl(new GMapTypeControl()); localSearch = new google.maps.LocalSearch();//{externalAds : document.getElementById("ads")}); myMap.addControl(localSearch); myQueryControl = new QueryControl(localSearch); myMap.addControl(myQueryControl); GEvent.addListener(myMap, "click", function(overlay, point) { if (point) { singleClick = !singleClick; setTimeout("if (singleClick) createCircle(new GLatLng("+ point.y + ", " + point.x +"), 250);", 300); } }); } </script> <style type="text/css"> @import url("http://www.google.com/uds/css/gsearch.css"); @import url("http://www.google.com/uds/solutions/localsearch/gmlocalsearch.css"); div#GQueryControl { background-color: white; width: 155; } </style> </head> <body onload="displayMap();" style="width: 75%; height: 75%; margin: 0px;"> <div id="map" style="width: 100%; height: 95%;"></div> <div style="font-family: arial, sans-serif;">Map for Freestone</div> <!--div id="QueryControl"></div> <div id="ads"> </div --> <script> var metric = false; var singleClick = false; var queryCenterOptions = new Object(); var queryLineOptions = new Object(); queryCenterOptions.icon = new GIcon(); queryCenterOptions.icon.image = "http://jfno.net/images/centerArrow.png"; queryCenterOptions.icon.iconSize = new GSize(20,20); queryCenterOptions.icon.shadowSize = new GSize(0, 0); queryCenterOptions.icon.iconAnchor = new GPoint(10, 10); queryCenterOptions.draggable = true; queryCenterOptions.bouncy = false; queryLineOptions.icon = new GIcon(); queryLineOptions.icon.image = "http://jfno.net/images/resizeArrow.png"; queryLineOptions.icon.iconSize = new GSize(25,20); queryLineOptions.icon.shadowSize = new GSize(0, 0); queryLineOptions.icon.iconAnchor = new GPoint(12, 10); queryLineOptions.draggable = true; queryLineOptions.bouncy = false; function createCircle(point, radius) { singleClick = false; geoQuery = new GeoQuery(); geoQuery.initializeCircle(radius, point, myMap); myQueryControl.addGeoQuery(geoQuery); geoQuery.render(); } function destination(orig, hdng, dist) { var R = 6371; // earth's mean radius in km var oX, oY; var x, y; var d = dist/R; // d = angular distance covered on earth's surface hdng = hdng * Math.PI / 180; // degrees to radians oX = orig.x * Math.PI / 180; oY = orig.y * Math.PI / 180; y = Math.asin( Math.sin(oY)*Math.cos(d) + Math.cos(oY)*Math.sin(d)*Math.cos(hdng) ); x = oX + Math.atan2(Math.sin(hdng)*Math.sin(d)*Math.cos(oY), Math.cos(d)-Math.sin(oY)*Math.sin(y)); y = y * 180 / Math.PI; x = x * 180 / Math.PI; return new GLatLng(y, x); } function distance(point1, point2) { var R = 6371; // earth's mean radius in km var lon1 = point1.lng()* Math.PI / 180; var lat1 = point1.lat() * Math.PI / 180; var lon2 = point2.lng() * Math.PI / 180; var lat2 = point2.lat() * Math.PI / 180; var deltaLat = lat1 - lat2 var deltaLon = lon1 - lon2 var step1 = Math.pow(Math.sin(deltaLat/2), 2) + Math.cos(lat2) * Math.cos(lat1) * Math.pow(Math.sin(deltaLon/2), 2); var step2 = 2 * Math.atan2(Math.sqrt(step1), Math.sqrt(1 - step1)); return step2 * R; } function GeoQuery() { } GeoQuery.prototype.CIRCLE='circle'; GeoQuery.prototype.COLORS=["#0000ff", "#00ff00", "#ff0000"]; var COLORI=0; GeoQuery.prototype = new GeoQuery(); GeoQuery.prototype._map; GeoQuery.prototype._type; GeoQuery.prototype._radius; GeoQuery.prototype._dragHandle; GeoQuery.prototype._centerHandle; GeoQuery.prototype._polyline; GeoQuery.prototype._color ; GeoQuery.prototype._control; GeoQuery.prototype._points; GeoQuery.prototype._dragHandlePosition; GeoQuery.prototype._centerHandlePosition; GeoQuery.prototype.initializeCircle = function(radius, point, map) { this._type = this.CIRCLE; this._radius = radius; this._map = map; this._dragHandlePosition = destination(point, 90, this._radius/1000); this._dragHandle = new GMarker(this._dragHandlePosition, queryLineOptions); this._centerHandlePosition = point; this._centerHandle = new GMarker(this._centerHandlePosition, queryCenterOptions); this._color = this.COLORS[COLORI++ % 3]; map.addOverlay(this._dragHandle); map.addOverlay(this._centerHandle); var myObject = this; GEvent.addListener (this._dragHandle, "dragend", function() {myObject.updateCircle(1);}); GEvent.addListener (this._dragHandle, "drag", function() {myObject.updateCircle(1);}); GEvent.addListener(this._centerHandle, "dragend", function() {myObject.updateCircle(2);}); GEvent.addListener(this._centerHandle, "drag", function() {myObject.updateCircle(2);}); } GeoQuery.prototype.updateCircle = function (type) { this._map.removeOverlay(this._polyline); if (type==1) { this._dragHandlePosition = this._dragHandle.getPoint(); this._radius = distance(this._centerHandlePosition, this._dragHandlePosition) * 1000; this.render(); } else { this._centerHandlePosition = this._centerHandle.getPoint(); this.render(); this._dragHandle.setPoint(this.getEast()); } } GeoQuery.prototype.render = function() { if (this._type == this.CIRCLE) { this._points = []; var distance = this._radius/1000; for (i = 0; i < 72; i++) { this._points.push(destination(this._centerHandlePosition, i * 360/72, distance) ); } this._points.push(destination(this._centerHandlePosition, 0, distance) ); //this._polyline = new GPolyline(this._points, this._color, 6); this._polyline = new GPolygon(this._points, this._color, 1, 1, this._color, 0.2); this._map.addOverlay(this._polyline) this._control.render(); } } GeoQuery.prototype.remove = function() { this._map.removeOverlay(this._polyline); this._map.removeOverlay(this._dragHandle); this._map.removeOverlay(this._centerHandle); } GeoQuery.prototype.getRadius = function() { return this._radius; } GeoQuery.prototype.getHTML = function() { return "<span><font color='"+ this._color + "''>" + this.getDistHtml() + "</font></span>"; } GeoQuery.prototype.getDistHtml = function() { result = "<img src='http://jfno.net/images/close.gif' onClick='myQueryControl.remove(" + this._control.getIndex(this) + ");'/>Radius "; if (metric) { if (this._radius < 1000) { result += "in meters : " + this._radius.toFixed(1); } else { result += "in kilometers : " + (this._radius / 1000).toFixed(1); } } else { var radius = this._radius * 3.2808399; if (radius < 5280) { result += "in feet : " + radius.toFixed(1); } else { result += "in miles : " + (radius / 5280).toFixed(1); } } return result; } GeoQuery.prototype.getNorth = function() { return this._points[0]; } GeoQuery.prototype.getSouth = function() { return this._points[(72/2)]; } GeoQuery.prototype.getEast = function() { return this._points[(72/4)]; } GeoQuery.prototype.getWest = function() { return this._points[(72/4*3)]; } function QueryControl (localSearch) { this._localSearch = localSearch; } QueryControl.prototype = new GControl(); QueryControl.prototype._geoQueries ; QueryControl.prototype._mainDiv; QueryControl.prototype._queriesDiv; QueryControl.prototype._minStar; QueryControl.prototype._minPrice; QueryControl.prototype._maxPrice; QueryControl.prototype._timeout; QueryControl.prototype._localSearch; QueryControl.prototype.getDefaultPosition = function() { return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(50, 10)); } QueryControl.prototype.addGeoQuery = function(geoQuery) { this._geoQueries.push(geoQuery); geoQuery._control = this; newDiv = document.createElement("div"); newDiv.innerHTML = geoQuery.getHTML(); this._queriesDiv.appendChild(newDiv); } QueryControl.prototype.render = function() { for (i = 0; i < this._geoQueries.length; i++) { geoQuery = this._geoQueries[i]; this._queriesDiv.childNodes[i].innerHTML = geoQuery.getHTML(); } if (this._timeout == null) { this._timeout = setTimeout(myQueryControl.query, 1000); } else { clearTimeout(this._timeout); this._timeout = setTimeout(myQueryControl.query, 1000); } } QueryControl.prototype.query = function() { listMarkers = myQueryControl._localSearch.markers.slice(); for (i = 0; i < listMarkers.length; i++) { marker = listMarkers[i].marker; result = listMarkers[i].resultsListItem; listImage = marker.getIcon().image; inCircle = true; for (j = 0; j < myQueryControl._geoQueries.length; j++) { geoQuery = myQueryControl._geoQueries[j]; dist = distance(marker.getLatLng(), geoQuery._centerHandlePosition); if (dist > geoQuery._radius / 1000) { inCircle = false; break; } } if (inCircle) { marker.setImage(listImage); result.childNodes[1].style.color = '#0000cc'; } else { var re = new RegExp(".*(marker.\.png)"); marker.setImage(listImage.replace(re, "img/$1")); result.childNodes[1].style.color = '#b0b0cc'; } } } QueryControl.prototype.remove = function(index) { this._geoQueries[index].remove(); this._queriesDiv.removeChild(this._queriesDiv.childNodes[index]); delete this._geoQueries[index]; this._geoQueries.splice(index,1); this.render(); } QueryControl.prototype.getIndex = function(geoQuery) { for (i = 0; i < this._geoQueries.length; i++) { if (geoQuery == this._geoQueries[i]) { return i; } } return -1; } </script> </body> </html> |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|