3
\$\begingroup\$

I want you to review my JavaScript project.

var geocoder;
var map;
var infowindow = new google.maps.InfoWindow();
var marker;
function initialize() {
 document.upload.lat.value = geoip_latitude();
 document.upload.lng.value = geoip_longitude();
 geocoder = new google.maps.Geocoder();
 var latlng = new google.maps.LatLng(geoip_latitude(), geoip_longitude());
 var myOptions = {
 zoom: 8,
 center: latlng,
 mapTypeId: 'roadmap'
 }
 map = new google.maps.Map(document.getElementById("gmap"), myOptions);
 //var ctaLayer = new google.maps.KmlLayer('http://www.koolbusiness.com/list.kml');
 //ctaLayer.setMap(map);
 google.maps.event.addListener(map, "click", gAdd);
 geocoder.geocode({
 'latLng': latlng
 }, function (results, status) {
 if (status == google.maps.GeocoderStatus.OK) {
 document.getElementById("message").innerHTML = results[5].formatted_address;
 document.upload.place.value = results[5].formatted_address;
 } else {
 }
 });
 if (navigator.geolocation) {
 browserSupportFlag = true;
 navigator.geolocation.getCurrentPosition(function (position) {
 initialLocation = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
 var latlng = initialLocation
 geocoder.geocode({
 'latLng': latlng
 }, function (results, status) {
 if (status == google.maps.GeocoderStatus.OK) {
 if (results[1]) {
 marker = new google.maps.Marker({
 position: latlng,
 map: map
 });
 infowindow.setContent('<a href="/li?lat=' + latlng.lat() + '&lon=' + latlng.lng() + '">' + results[1].formatted_address + '</a>');
 infowindow.open(map, marker);
 document.upload.lat.value = latlng.lat();
 document.upload.lng.value = latlng.lng();
 document.upload.place.value = results[5].formatted_address
 } else {
 alert("No results found");
 }
 } else {
 alert("Geocoder failed due to: " + status);
 }
 });
 }, function () {
 handleNoGeolocation(browserSupportFlag);
 });
 } else if (google.gears) {
 // Try Google Gears Geolocation
 browserSupportFlag = true;
 var geo = google.gears.factory.create('beta.geolocation');
 geo.getCurrentPosition(function (position) {
 initialLocation = new google.maps.LatLng(position.latitude, position.longitude);
 var latlng = initialLocation
 geocoder.geocode({
 'latLng': latlng
 }, function (results, status) {
 if (status == google.maps.GeocoderStatus.OK) {
 if (results[1]) {
 marker = new google.maps.Marker({
 position: latlng,
 map: map
 });
 infowindow.setContent('<a href="/li?lat=' + latlng.lat() + '&lon=' + latlng.lng() + '">' + results[1].formatted_address + '</a>');
 infowindow.open(map, marker);
 document.upload.lat.value = latlng.lat();
 document.upload.lng.value = latlng.lng();;
 document.upload.place.value = results[5].formatted_address;
 } else {
 alert("No results found");
 }
 } else {
 alert("Geocoder failed due to: " + status);
 }
 });
 }, function () {
 handleNoGeolocation(browserSupportFlag);
 });
 } else {
 // Browser doesn't support Geolocation
 browserSupportFlag = false;
 handleNoGeolocation(browserSupportFlag);
 }
}
function gAdd(ev) {
 marker.setMap(null)
 var latlng = new google.maps.LatLng(ev.latLng.lat(), ev.latLng.lng());
 geocoder.geocode({
 'latLng': latlng
 }, function (results, status) {
 if (status == google.maps.GeocoderStatus.OK) {
 document.getElementById("message").innerHTML = results[1].formatted_address;
 document.upload.place.value = results[5].formatted_address
 document.upload.lat.value = latlng.lat();
 document.upload.lng.value = latlng.lng();
 marker = new google.maps.Marker({
 position: latlng,
 draggable: true,
 animation: google.maps.Animation.DROP,
 map: map
 });
 google.maps.event.addListener(marker, 'click', toggleBounce);
 infowindow.setContent('<a href="/li?lat=' + latlng.lat() + '&lon=' + latlng.lng() + '">' + results[1].formatted_address + '</a>');
 infowindow.open(map, marker);
 } else {
 }
 });
}
function toggleBounce() {
 if (marker.getAnimation() != null) {
 alert("test");
 marker.setAnimation(null);
 } else {
 marker.setAnimation(google.maps.Animation.BOUNCE);
 }
}

enter image description here

Jamal
35.2k13 gold badges134 silver badges238 bronze badges
asked Nov 19, 2011 at 23:56
\$\endgroup\$
1
  • 3
    \$\begingroup\$ Add comments, name your functions, make the code less ugly. \$\endgroup\$ Commented Nov 20, 2011 at 0:18

1 Answer 1

5
\$\begingroup\$

Comments:

  • I highly suggest that you document your functions better. At the beginning of each function, document:
    1. The overall purpose of the function
    2. The parameters it takes and their types
    3. What is returned.
  • Document each major block of code.
    1. Describe the overall procedure for the code piece.
    2. Document variables that will are already in use that are needed in your code. (I only do this sometimes, it's not as helpful as the rest, but sometimes it's nice)
  • Use semicolons for every code statement. At least twice when you declared your variables you didn't use a semicolon at the end.
answered Nov 20, 2011 at 5:35
\$\endgroup\$
0

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.