gibsongk55
10-16-2011, 12:53 AM
Hi,
I don't know javascript. Though I have a tpl file that displays a google map which works.
I added the code to calculate the distance between two points... lat1, lon1, lat2, lon2.
But the map no longer shows up on the site. So something is not working.
Appreciate any help.
Thanks,
Gibs
//<![CDATA[
function initialize() {
// Google Map Custom Marker Maker 2011
// Please include the following credit in your code
// Sample custom marker code created with Google Map Custom Marker Maker
// http://www.powerhut.co.uk/googlemaps/custom_markers.php
var point = new google.maps.LatLng([xfvalue_koordx], [xfvalue_koordy]);
var myMapOptions = {
zoom: 9,
center: point,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map"),myMapOptions);
var image = new google.maps.MarkerImage(
'marker-images/football.png',
new google.maps.Size(52,51),
new google.maps.Point(0,0),
new google.maps.Point(26,51)
);
var shadow = new google.maps.MarkerImage(
'marker-images/fshadow.png',
new google.maps.Size(82,51),
new google.maps.Point(0,0),
new google.maps.Point(26,51)
);
var shape = {
coord: [26,9,28,10,29,11,29,12,30,13,30,14,31,15,32,16,32,17,33,18,33,19,33,20,34,21,35,22,35,23,35,24,35,25,35,26,35,27,34,28,33,29,33,30,33,31,33,32,32,33,32,34,31,35 ,31,36,30,37,29,38,28,39,27,40,26,41,26,42,23,42,22,41,21,40,21,39,20,38,19,37,18,36,18,35,17,34,17,33,16,32,16,31,15,30,15,29,15,28,15,27,15,26,15,25,15,24,15, 23,16,22,16,21,16,20,17,19,17,18,18,17,18,16,18,15,19,14,20,13,21,12,22,11,23,10,25,9,26,9],
type: 'poly'
};
var marker = new google.maps.Marker({
draggable: true,
raiseOnDrag: false,
icon: image,
shadow: shadow,
shape: shape,
map: map,
title: "Place",
position: new google.maps.LatLng(39.759709, -86.164644)
});
var image2 = new google.maps.MarkerImage(
'marker-images/house.png',
new google.maps.Size(32,32),
new google.maps.Point(0,0),
new google.maps.Point(16,32)
);
var shadow2 = new google.maps.MarkerImage(
'marker-images/hshadow.png',
new google.maps.Size(52,32),
new google.maps.Point(0,0),
new google.maps.Point(16,32)
);
var shape2 = {
coord: [16,0,16,1,17,2,18,3,20,4,21,5,22,6,23,7,24,8,25,9,26,10,27,11,28,12,29,13,30,14,31,15,31,16,29,17,29,18,29,19,29,20,29,21,29,22,29,23,29,24,29,25,29,26,29,27,30 ,28,30,29,28,30,7,30,2,29,1,28,1,27,1,26,2,25,2,24,2,23,2,22,2,21,2,20,2,19,2,18,2,17,0,16,0,15,1,14,2,13,3,12,4,11,5,10,6,9,7,8,8,7,9,6,10,5,11,4,12,3,13,2,14, 1,15,0,16,0],
type: 'poly'
};
var marker2 = new google.maps.Marker({
draggable: true,
raiseOnDrag: false,
icon: image2,
shadow: shadow2,
shape: shape2,
map: map,
title: ("[xfvalue_Address]"),
position: new google.maps.LatLng([xfvalue_koordx], [xfvalue_koordy])
});
var lat1 = ([xfvalue_koordx]);
var lon1 = ([xfvalue_koordy]);
var lat2 = (39.759709);
var lon2 = (-86.164644);
var unit = 'M';
var radlat1 = Math.PI * lat1/180
var radlat2 = Math.PI * lat2/180
var radlon1 = Math.PI * lon1/180
var radlon2 = Math.PI * lon2/180
var theta = lon1-lon2
var radtheta = Math.PI * theta/180
var dist = Math.sin(radlat1) * Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta); dist = Math.acos(dist) dist = dist * 180/Math.PI dist = dist * 60 * 1.1515 if (unit=="K") { dist = dist * 1.609344 } if (unit=="N") { dist = dist * 0.8684 }
myInfoWindowOptions = {
content: '<div class="info-window-content">'
+ '<h4>{title}</h4><p>[xfvalue_Address]</p>'
+ '<p>[xfvalue_City], [xfvalue_State] [xfvalue_Zip Code]</p>'
+ '<p>Distance to Event: ' + dist.toFixed(2) + 'miles</div>',
maxWidth: 200
}
infoWindow = new google.maps.InfoWindow(myInfoWindowOptions);
google.maps.event.addListener(marker, 'click', function() {
infoWindow.open(map,marker);
});
google.maps.event.addListener(marker, 'dragstart', function(){
infoWindow.close();
});
infoWindow.open(map,marker2);
function loadScript() {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "http://maps.google.com/maps/api/js?sensor=false&callback=initialize";
document.body.appendChild(script);
}
window.onload = loadScript;
//]]>
</script>
I don't know javascript. Though I have a tpl file that displays a google map which works.
I added the code to calculate the distance between two points... lat1, lon1, lat2, lon2.
But the map no longer shows up on the site. So something is not working.
Appreciate any help.
Thanks,
Gibs
//<![CDATA[
function initialize() {
// Google Map Custom Marker Maker 2011
// Please include the following credit in your code
// Sample custom marker code created with Google Map Custom Marker Maker
// http://www.powerhut.co.uk/googlemaps/custom_markers.php
var point = new google.maps.LatLng([xfvalue_koordx], [xfvalue_koordy]);
var myMapOptions = {
zoom: 9,
center: point,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map"),myMapOptions);
var image = new google.maps.MarkerImage(
'marker-images/football.png',
new google.maps.Size(52,51),
new google.maps.Point(0,0),
new google.maps.Point(26,51)
);
var shadow = new google.maps.MarkerImage(
'marker-images/fshadow.png',
new google.maps.Size(82,51),
new google.maps.Point(0,0),
new google.maps.Point(26,51)
);
var shape = {
coord: [26,9,28,10,29,11,29,12,30,13,30,14,31,15,32,16,32,17,33,18,33,19,33,20,34,21,35,22,35,23,35,24,35,25,35,26,35,27,34,28,33,29,33,30,33,31,33,32,32,33,32,34,31,35 ,31,36,30,37,29,38,28,39,27,40,26,41,26,42,23,42,22,41,21,40,21,39,20,38,19,37,18,36,18,35,17,34,17,33,16,32,16,31,15,30,15,29,15,28,15,27,15,26,15,25,15,24,15, 23,16,22,16,21,16,20,17,19,17,18,18,17,18,16,18,15,19,14,20,13,21,12,22,11,23,10,25,9,26,9],
type: 'poly'
};
var marker = new google.maps.Marker({
draggable: true,
raiseOnDrag: false,
icon: image,
shadow: shadow,
shape: shape,
map: map,
title: "Place",
position: new google.maps.LatLng(39.759709, -86.164644)
});
var image2 = new google.maps.MarkerImage(
'marker-images/house.png',
new google.maps.Size(32,32),
new google.maps.Point(0,0),
new google.maps.Point(16,32)
);
var shadow2 = new google.maps.MarkerImage(
'marker-images/hshadow.png',
new google.maps.Size(52,32),
new google.maps.Point(0,0),
new google.maps.Point(16,32)
);
var shape2 = {
coord: [16,0,16,1,17,2,18,3,20,4,21,5,22,6,23,7,24,8,25,9,26,10,27,11,28,12,29,13,30,14,31,15,31,16,29,17,29,18,29,19,29,20,29,21,29,22,29,23,29,24,29,25,29,26,29,27,30 ,28,30,29,28,30,7,30,2,29,1,28,1,27,1,26,2,25,2,24,2,23,2,22,2,21,2,20,2,19,2,18,2,17,0,16,0,15,1,14,2,13,3,12,4,11,5,10,6,9,7,8,8,7,9,6,10,5,11,4,12,3,13,2,14, 1,15,0,16,0],
type: 'poly'
};
var marker2 = new google.maps.Marker({
draggable: true,
raiseOnDrag: false,
icon: image2,
shadow: shadow2,
shape: shape2,
map: map,
title: ("[xfvalue_Address]"),
position: new google.maps.LatLng([xfvalue_koordx], [xfvalue_koordy])
});
var lat1 = ([xfvalue_koordx]);
var lon1 = ([xfvalue_koordy]);
var lat2 = (39.759709);
var lon2 = (-86.164644);
var unit = 'M';
var radlat1 = Math.PI * lat1/180
var radlat2 = Math.PI * lat2/180
var radlon1 = Math.PI * lon1/180
var radlon2 = Math.PI * lon2/180
var theta = lon1-lon2
var radtheta = Math.PI * theta/180
var dist = Math.sin(radlat1) * Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta); dist = Math.acos(dist) dist = dist * 180/Math.PI dist = dist * 60 * 1.1515 if (unit=="K") { dist = dist * 1.609344 } if (unit=="N") { dist = dist * 0.8684 }
myInfoWindowOptions = {
content: '<div class="info-window-content">'
+ '<h4>{title}</h4><p>[xfvalue_Address]</p>'
+ '<p>[xfvalue_City], [xfvalue_State] [xfvalue_Zip Code]</p>'
+ '<p>Distance to Event: ' + dist.toFixed(2) + 'miles</div>',
maxWidth: 200
}
infoWindow = new google.maps.InfoWindow(myInfoWindowOptions);
google.maps.event.addListener(marker, 'click', function() {
infoWindow.open(map,marker);
});
google.maps.event.addListener(marker, 'dragstart', function(){
infoWindow.close();
});
infoWindow.open(map,marker2);
function loadScript() {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "http://maps.google.com/maps/api/js?sensor=false&callback=initialize";
document.body.appendChild(script);
}
window.onload = loadScript;
//]]>
</script>