Google Map API和JavaScript问题 [英] Google Map API & JavaScript Issue

查看:84
本文介绍了Google Map API和JavaScript问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用Google Maps API和自定义JScript来计算塔霍盆地的积雪量.

I am using Google Maps API and custom JScript to be able to calculate snow loads in Tahoe Basin.

除了一个县以外,这一切都按预期工作了...埃尔多拉多(El Dorado),该行不通,而且我无法找出问题所在.

This all works as expected except for one county...El Dorado, which does not work, and I have not been able to isolate the issue.

如果加载了代码段(全屏最佳),则可以看到该代码段适用于除埃尔多拉多县(El Dorado County)以外的湖中所有县.

If you load the snippet (best in full screen) you can see that it works for all counties around the lake except for El Dorado County.

注意::要重现此错误:在全屏和Goto South Tahoe湖中加载代码段,然后单击那个叫El Dorado County的小镇,它就会出错.

NOTE: To reproduce the error: Load snippet in full screen and Goto South Lake Tahoe and click on that town that is El Dorado County and it errors.

var points = {
  westPlacer: [
    {
      lat: 39.373490,
      long: -120.235205
    }, {
      lat: 39.359037,
      long: -120.235319
    }, {
      lat: 39.343940,
      long: -120.235506
    }, {
      lat: 39.329288,
      long: -120.235731
    }, {
      lat: 39.314982,
      long: -120.236251
    }, {
      lat: 39.300705,
      long: -120.236422
    }, {
      lat: 39.285794,
      long: -120.236672
    }, {
      lat: 39.271297,
      long: -120.236402
    }, {
      lat: 39.256740,
      long: -120.236290
    }, {
      lat: 39.242320,
      long: -120.236151
    }, {
      lat: 39.227314,
      long: -120.236011
    }, {
      lat: 39.213102,
      long: -120.235911
    }, {
      lat: 39.198786,
      long: -120.235766
    }, {
      lat: 39.184576,
      long: -120.236484
    }, {
      lat: 39.184575,
      long: -120.236484
    }, {
      lat: 39.184119,
      long: -120.228208
    }, {
      lat: 39.170143,
      long: -120.228036
    }, {
      lat: 39.154701,
      long: -120.190700
    }, {
      lat: 39.154700,
      long: -120.190700
    }, {
      lat: 39.140015,
      long: -120.190456
    }, {
      lat: 39.125517,
      long: -120.190547
    }, {
      lat: 39.111406,
      long: -120.190561
    }, {
      lat: 39.096556,
      long: -120.190558
    }, {
      lat: 39.082067,
      long: -120.190534
    }, {
      lat: 39.077698,
      long: -120.188443
    }, {
      lat: 39.074887,
      long: -120.187134
    }, {
      lat: 39.071210,
      long: -120.185336
    }, {
      lat: 39.067491,
      long: -120.183625
    }, {
      lat: 39.053039,
      long: -120.183695
    }, {
      lat: 39.038354,
      long: -120.183683
    },
  ],
  eastPlacer: [
    {
      lat: 39.373603,
      long: -120.216838
    }, {
      lat: 39.358984,
      long: -120.216856
    }, {
      lat: 39.344107,
      long: -120.216683
    }, {
      lat: 39.329376,
      long: -120.216833
    }, {
      lat: 39.315090,
      long: -120.217128
    }, {
      lat: 39.300554,
      long: -120.217113
    }, {
      lat: 39.285834,
      long: -120.217154
    }, {
      lat: 39.271439,
      long: -120.217729
    }, {
      lat: 39.256922,
      long: -120.217728
    }, {
      lat: 39.242498,
      long: -120.217577
    }, {
      lat: 39.227876,
      long: -120.217551
    }, {
      lat: 39.213208,
      long: -120.217543
    }, {
      lat: 39.198558,
      long: -120.217517
    }, {
      lat: 39.183976,
      long: -120.217368
    }, {
      lat: 39.183975,
      long: -120.217368
    }, {
      lat: 39.183805,
      long: -120.172043
    }, {
      lat: 39.168931,
      long: -120.171713
    }, {
      lat: 39.154654,
      long: -120.171681
    }, {
      lat: 39.154653,
      long: -120.171681
    }, {
      lat: 39.139767,
      long: -120.171765
    }, {
      lat: 39.125323,
      long: -120.171739
    }, {
      lat: 39.111128,
      long: -120.171530
    }, {
      lat: 39.096527,
      long: -120.171580
    }, {
      lat: 39.082052,
      long: -120.171833
    }, {
      lat: 39.080031,
      long: -120.170910
    }, {
      lat: 39.076672,
      long: -120.169374
    }, {
      lat: 39.072898,
      long: -120.167611
    }, {
      lat: 39.067501,
      long: -120.165205
    }, {
      lat: 39.053084,
      long: -120.164571
    }, {
      lat: 39.038447,
      long: -120.165066
    }
  ]
};

var loads = {
  westWashoe: [
    {
      elevation: 5000,
      snowload: 30
    }, {
      elevation: 5100,
      snowload: 41
    }, {
      elevation: 5200,
      snowload: 52
    }, {
      elevation: 5300,
      snowload: 64
    }, {
      elevation: 5400,
      snowload: 75
    }, {
      elevation: 5500,
      snowload: 86
    }, {
      elevation: 6000,
      snowload: 142
    }, {
      elevation: 6500,
      snowload: 171
    }, {
      elevation: 7000,
      snowload: 200
    }, {
      elevation: 7500,
      snowload: 215
    }, {
      elevation: 8000,
      snowload: 229
    }, {
      elevation: 8500,
      snowload: 243
    }, {
      elevation: 9000,
      snowload: 271
    }, {
      elevation: 9500,
      snowload: 300
    }, {
      elevation: 10000,
      snowload: 357
    }
  ],
  eastWashoe: [
    {
      elevation: 5000,
      snowload: 30
    }, {
      elevation: 5100,
      snowload: 31
    }, {
      elevation: 5200,
      snowload: 33
    }, {
      elevation: 5300,
      snowload: 34
    }, {
      elevation: 5400,
      snowload: 35
    }, {
      elevation: 5500,
      snowload: 37
    }, {
      elevation: 6000,
      snowload: 43
    }, {
      elevation: 6500,
      snowload: 43
    }, {
      elevation: 7000,
      snowload: 57
    }, {
      elevation: 7500,
      snowload: 57
    }, {
      elevation: 8000,
      snowload: 86
    }, {
      elevation: 8500,
      snowload: 86
    }, {
      elevation: 9000,
      snowload: 114
    }, {
      elevation: 9500,
      snowload: 142
    }
  ],
  basinWashoe: [
    {
      elevation: 6000,
      snowload: 220
    }, {
      elevation: 6500,
      snowload: 235
    }, {
      elevation: 7000,
      snowload: 250
    }, {
      elevation: 7500,
      snowload: 265
    }, {
      elevation: 8000,
      snowload: 280
    }, {
      elevation: 8500,
      snowload: 295
    }, {
      elevation: 9000,
      snowload: 330
    }, {
      elevation: 9500,
      snowload: 390
    }, {
      elevation: 10000,
      snowload: 420
    }
  ],
  westPlacer: [
    {
      elevation: 1000,
      snowload: 10,
      snowdensity: 20,
      snowdepth: 3.0
    }, {
      elevation: 1600,
      snowload: 20,
      snowdensity: 20,
      snowdepth: 3.0
    }, {
      elevation: 2500,
      snowload: 29,
      snowdensity: 20,
      snowdepth: 3.0
    }, {
      elevation: 3000,
      snowload: 55,
      snowdensity: 20,
      snowdepth: 3.0
    }, {
      elevation: 3500,
      snowload: 70,
      snowdensity: 20,
      snowdepth: 3.8
    }, {
      elevation: 4000,
      snowload: 100,
      snowdensity: 20,
      snowdepth: 5.0
    }, {
      elevation: 4500,
      snowload: 160,
      snowdensity: 22.7,
      snowdepth: 6.5
    }, {
      elevation: 5000,
      snowload: 200,
      snowdensity: 24.5,
      snowdepth: 8.2
    }, {
      elevation: 5500,
      snowload: 260,
      snowdensity: 26.7,
      snowdepth: 9.7
    }, {
      elevation: 6000,
      snowload: 315,
      snowdensity: 27.0,
      snowdepth: 11.7
    }, {
      elevation: 6500,
      snowload: 375,
      snowdensity: 29.6,
      snowdepth: 12.7
    }, {
      elevation: 7000,
      snowload: 430,
      snowdensity: 30.1,
      snowdepth: 14.3
    }, {
      elevation: 7500,
      snowload: 490,
      snowdensity: 30.6,
      snowdepth: 16.0
    }, {
      elevation: 7501,
      snowload: 545,
      snowdensity: 32.4,
      snowdepth: 16.8
    }
  ],
  eastPlacer: [
    {
      elevation: 5500,
      snowload: 130,
      snowdensity: 23.6,
      snowdepth: 5.5
    }, {
      elevation: 6000,
      snowload: 190,
      snowdensity: 23.8,
      snowdepth: 7.9
    }, {
      elevation: 6500,
      snowload: 245,
      snowdensity: 24.5,
      snowdepth: 10.0
    }, {
      elevation: 7000,
      snowload: 300,
      snowdensity: 25.0,
      snowdepth: 12.0
    }, {
      elevation: 7500,
      snowload: 360,
      snowdensity: 25.2,
      snowdepth: 14.3
    }, {
      elevation: 8000,
      snowload: 400,
      snowdensity: 25.5,
      snowdepth: 15.7
    }, {
      elevation: 8001,
      snowload: 445,
      snowdensity: 25.7,
      snowdepth: 17.3
    }
  ],
  westElDorado: [
    {
      elevation: 2000,
      snowload: 20
    }, {
      elevation: 2500,
      snowload: 32
    }, {
      elevation: 3000,
      snowload: 45
    }, {
      elevation: 3500,
      snowload: 56
    }, {
      elevation: 4000,
      snowload: 68
    }, {
      elevation: 4500,
      snowload: 80
    }, {
      elevation: 5000,
      snowload: 90
    }, {
      elevation: 5500,
      snowload: 100
    }, {
      elevation: 6000,
      snowload: 110
    }, {
      elevation: 6500,
      snowload: 120
    }, {
      elevation: 7000,
      snowload: 128
    }, {
      elevation: 7500,
      snowload: 135
    }
  ],
  basinElDorado: [
    {
      elevation: 6000,
      snowload: 145
    }, {
      elevation: 6500,
      snowload: 160
    }, {
      elevation: 7000,
      snowload: 170
    }, {
      elevation: 7500,
      snowload: 180
    }
  ]
};

var countyCalculations = {
  Washoe_County: function(latLng, elevation) {
    var eastInfo = getSnowInfoForRegion("eastWashoe", elevation);
    var westInfo = getSnowInfoForRegion("westWashoe", elevation);
    var basinInfo = getSnowInfoForRegion("basinWashoe", elevation);

    return {
      county: "Washoe",
      snowload: "<br/>- if east of 395: " + round(eastInfo.snowload, 2) + " psf<br/>- if west of 395: " + round(westInfo.snowload, 2) + " psf<br/>- if in Tahoe Basin: " + round(basinInfo.snowload, 2) + " psf",
      //snowdensity: "<br/>- if east of 395: " + round(eastInfo.snowdensity, 2) + " pcf<br/>- if west of 395: " + round(westInfo.snowdensity, 2) + " pcf<br/>- if in Tahoe Basin: " + round(basinInfo.snowdensity, 2) + " pcf",
      //snowdepth: "<br/>- if east of 395: " + round(eastInfo.snowdepth, 2) + " feet<br/>- if west of 395: " + round(westInfo.snowdepth, 2) + " feet<br/>- if in Tahoe Basin: " + round(basinInfo.snowdepth, 2) + " feet"
    };
  },

  Placer_County: function(latLng, elevation) {
    // get closest basin border reference points
    var eastReferencePoint = getNearestPointForRegionByLatitude("eastPlacer", latLng.lat());
    var westReferencePoint = getNearestPointForRegionByLatitude("westPlacer", latLng.lat());

    // is the longitude east of or in the basin
    var eastSnowInfo;
    if(latLng.lng() > westReferencePoint.long)
      eastSnowInfo = getSnowInfoForRegion("eastPlacer", elevation);

    // is the longitude west of or in the basin
    var westSnowInfo;
    if(latLng.lng() < eastReferencePoint.long)
      westSnowInfo = getSnowInfoForRegion("westPlacer", elevation);

    var snowload;
    var snowdensity;
    var snowdepth;

    // east AND not west snowloads calculated (longitude is east of the basin)
    if(eastSnowInfo && !westSnowInfo) {
      snowload = eastSnowInfo.snowload;
      snowdensity = eastSnowInfo.snowdensity;
      snowdepth = eastSnowInfo.snowdepth;
    }

    // west AND now east snowloads calculated (longitude is west of the basin)
    if(!eastSnowInfo && westSnowInfo) {
      snowload = westSnowInfo.snowload;
      snowdensity = westSnowInfo.snowdensity;
      snowdepth = westSnowInfo.snowdepth;
    }

    // were the east AND west snowloads calculated (longitude is in the basin)
    if(eastSnowInfo && westSnowInfo) {
      snowload = interpolate(latLng.lng(), westReferencePoint.long, eastReferencePoint.long, westSnowInfo.snowload, eastSnowInfo.snowload);
      snowdensity = interpolate(latLng.lng(), westReferencePoint.long, eastReferencePoint.long, westSnowInfo.snowdensity, eastSnowInfo.snowdensity);
      snowdepth = interpolate(latLng.lng(), westReferencePoint.long, eastReferencePoint.long, westSnowInfo.snowdepth, eastSnowInfo.snowdepth);
    }

    return {
      county: "Placer",
      snowload: round(snowload, 2) + " psf",
      snowdensity: round(snowdensity, 2) + " pcf",
      snowdepth: round(snowdepth, 2) + " feet"
    };
  },

  Nevada_County: function(latLng, elevation) {
    // Truckee uses Placer county algorithm
    var info = countyCalculations.Placer_County(latLng, elevation);
    info.county = "Nevada (Truckee only)";
    return info;
  },

  El_Dorado_County: function(latLng, elevation) {
    var westInfo = getSnowInfoForRegion("westElDorado", elevation);
    var basinInfo = getSnowInfoForRegion("basinElDorado", elevation);

    return {
      county: "El Dorado",
      snowload: "<br/>- if on West Slope: " + round(westInfo.snowload, 2) + " psf<br/>- if in Tahoe Basin: " + round(basinInfo.snowload, 2) + " psf",
      //snowdensity: "<br/>- if on West Slope: " + round(westInfo.snowdensity, 2) + " pcf<br/>- if in Tahoe Basin: " + round(basinInfo.snowdensity, 2) + " pcf",
      //snowdepth: "<br/>- if on West Slope: " + round(westInfo.snowdepth, 2) + " feet<br/>- if in Tahoe Basin: " + round(basinInfo.snowdepth, 2) + " feet"
    };
  },

  Douglas_County: function(latLng, elevation) {
    return {
      county: "Douglas",
      snowload: (elevation <= 6000 ? 30 : 150) + " psf"
    };
  }
};

calculateSnowInfo = function(input, elevationOverride, success, error) {
  var geocoderService = new google.maps.Geocoder();
  geocoderService.geocode(input, function(results, status) {
    if(status != google.maps.GeocoderStatus.OK)
      error("Failed to translate address to coordinates via Google: " + status);
    else {
      var location = (input.latLng ? input.latLng : results[0].geometry.location);
      var formattedAddress = results[0].formatted_address;
      var county;
      var city;

      var result = results[0];
      for(componentIndex in result.address_components) {
        var component = result.address_components[componentIndex];
        for(typeIndex in component.types) {
          if(component.types[typeIndex] == "locality")
            city = component.long_name;
          if(component.types[typeIndex] == "administrative_area_level_2")
            county = component.long_name;
        }
      }

      var countyCalculate;
      if(!county) {
        error("Unable to determine county from address");
        return;
      }

      county = county.replace(" ", "_");

      if(countyCalculations[county]) {
        if(county == "Nevada" && city != "Truckee") {
          error("The address provided appears to be in Nevada county outside the limits of Truckee.  Only Truckee addresses are supported for this county.");
          return;
        }
        countyCalculate = countyCalculations[county];
      } else {
        error("The address provided appears to be in " + county + " county (only Placer, Washoe, Nevada, El Dorado, and Douglas counties are supported)");
        return;
      }

      if(elevationOverride) {
        var info = countyCalculate(location, elevationOverride);
        info.location = location;
        info.formattedAddress = formattedAddress;
        info.elevation = elevation + " feet (overriden)";
        success(info);
      } else {
        var elevationService = new google.maps.ElevationService();
        elevationService.getElevationForLocations({
          locations: [location]
        }, function(results, status) {
          if(status != google.maps.ElevationStatus.OK)
            error("Failed to get elevation data from Google: " + status);
          else {
            elevation = Math.round(results[0].elevation * 3.2808399);

            var info = countyCalculate(location, elevation);
            info.location = location;
            info.formattedAddress = formattedAddress;
            info.elevation = elevation + " feet";
            success(info);
          }
        });
      }
    }
  });
}

getNearestPointForRegionByLatitude = function(region, latitude) {
  var pointsRegion = points[region];

  var bestPoint;
  var bestDelta;

  for(pointIndex in pointsRegion) {
    point = pointsRegion[pointIndex];
    delta = Math.abs(point.lat - latitude);
    if(!bestPoint || delta < bestDelta) {
      bestDelta = delta;
      bestPoint = point;
    }
  }

  return bestPoint;
}

getSnowInfoForRegion = function(region, elevation) {
  var loadsRegion = loads[region];

  var lowerLoadInfo = loadsRegion[0];
  for(loadInfoIndex in loadsRegion) {
    loadInfo = loadsRegion[loadInfoIndex];
    if(loadInfo.elevation > elevation)
      break;
    lowerLoadInfo = loadInfo;
  }

  var upperLoadInfo = loadsRegion[loadsRegion.length - 1];
  for(loadInfoIndex in loadsRegion) {
    loadInfo = loadsRegion[loadInfoIndex];
    if(loadInfo.elevation >= elevation) {
      upperLoadInfo = loadInfo;
      break;
    }
  }

  var results = {};
  if(lowerLoadInfo.elevation == upperLoadInfo.elevation)
    return {
      snowload: lowerLoadInfo.snowload,
      snowdensity: lowerLoadInfo.snowdensity,
      snowdepth: lowerLoadInfo.snowdepth
    };
  else
    return {
      snowload: interpolate(elevation, lowerLoadInfo.elevation, upperLoadInfo.elevation, lowerLoadInfo.snowload, upperLoadInfo.snowload),
      snowdensity: interpolate(elevation, lowerLoadInfo.elevation, upperLoadInfo.elevation, lowerLoadInfo.snowdensity, upperLoadInfo.snowdensity),
      snowdepth: interpolate(elevation, lowerLoadInfo.elevation, upperLoadInfo.elevation, lowerLoadInfo.snowdepth, upperLoadInfo.snowdepth)
    };
}

interpolate = function(source, sourceLower, sourceUpper, targetLower, targetUpper) {
  return (((source - sourceLower) / (sourceUpper - sourceLower)) * (targetUpper - targetLower)) + targetLower;
}

round = function(number, places) {
  var offset = 10 * places;
  return Math.round(number * offset) / offset;
}

/*
Title:      Zachary Engineering OVER_RIDE STYLES
Author:     matt@mattabron.com // Matt Abron: visualjelly.com 

.inside-page #wrapper #container .container_12 .main-content .grid_8.alpha .post_block .socshare .facebookdiv {
    float: right;
}
#map_canvas {
    float: left;
    height: 870px;
    width: 607px;
    background-color: aqua;
}
#map3d {
    float: left;
    height: 870px;
    width: 607px;
    margin-top: 15px;
    margin-left: 15px;
}
.inside-page #wrapper #container .container_12 .main-content .grid_12.alpha.omega .project #snoload_wrap_v2 #snoload_form #address, #latitude, #longitude, #county, #latitude2, #longitude2, #county2, #elevation, #snowloadResult {
    float: right;
    width: 140px;
    margin-bottom: 9px;
}
.inside-page #wrapper #container .container_12 .main-content .grid_12.alpha.omega .project #snoload_wrap_v2 #snoload_form button {
    margin-left: 10px;
    width: 200px;
}
.snoLoad_Label {
    float: left;
    padding-top: 7px;
    text-transform: uppercase;
    font-size: 12px;
}
.snoLoad_Label_consec {
    float: left;
    padding-top: 16px;
    text-transform: uppercase;
    font-size: 12px;
}
    
#snoLoadVersion {
    height: 160px;
    width: 216px;
    position: absolute;
    left: 126px;
    top: -545px;
    z-index: 50;
}
.SnoLoadCentered {
    text-align: center;
    text-transform: uppercase;
}
#wrapper #container .container_12 .main-content .grid_12.alpha.omega .project #snoload_wrap_v2 #map_canvas p {
    font-size: 10px;
}
#element.style {
    cursor: url("http://maps.gstatic.com/mapfiles/openhand_8_8.cur"), default;
    left: 0;
    position: absolute;
    top: 0;
    z-index: 1;
}

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="robots" content="index, follow" />
<meta name="keywords" content="" />
<meta name="description" content="" />
<title>ZACHARY ENGINEERING | Residential Engineering | Verion3</title>

<!-- CSS Start //-->

<link href="css/custom.css" rel="stylesheet" type="text/css">

<!-- JS Start //--> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
    
    
<script type="text/javascript">
    var $ = jQuery.noConflict();
</script> 
    
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?key=AIzaSyBBiAQWE_6cpjMhaItS0N6Ew3KjHb6JOqg&sensor=true">
</script> 

<script type="text/javascript" src="js/snowloadCalculator.js"></script>
<!-- Custom Functions - Main Js file --> 
<script type="text/javascript">
      var map;
      var infowindow = new google.maps.InfoWindow();

      function initialize() {
        var myOptions = {
          center: new google.maps.LatLng(39.085304, -120.031185),
          zoom: 11,
          mapTypeId: google.maps.MapTypeId.HYBRID
        };
        map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

        google.maps.event.addListener(map, 'click', function(clickEvent) {calculateByLocation(clickEvent.latLng);});
      }

      function calculateByAddress(address, elevationOverride) {
        calculateSnowInfo({address: address}, elevationOverride, successCallback, errorCallback);
      }

      function calculateByLocation(latLng, elevationOverride) {
        calculateSnowInfo({latLng: latLng}, elevationOverride, successCallback, errorCallback);
      }

      function successCallback(info) {
        var content = "Address: " + info.formattedAddress + "<br/>County: " + info.county + "<br/>Elevation: " + info.elevation + "<br/>Ground Snow Load: " + info.snowload + "<br/>";
        content += "Snow Density: " + (info.snowdensity ? info.snowdensity : "no data") + "<br/>";
        content += "Maximum Anticipated Snow Depth: " + (info.snowdensity ? info.snowdepth : "no data");
<!--Location: " + info.location + "<br/>-->
        
        infowindow.setContent(content);
        infowindow.setPosition(info.location);
        
        infowindow.open(map);

        map.setCenter(info.location);
        map.setZoom(19);
        
        $("#address").val(info.formattedAddress);
        $("#addressElevation").val(info.elevation);
        $("#latitude").val(info.location.lat());
        $("#longitude").val(info.location.lng());
        $("#locationElevation").val(info.elevation);
      }

      function errorCallback(errorMessage) {alert(errorMessage);}
</script> 
<script type="text/javascript">
/*// Redirect if mobile device
    SA.redirection_mobile ({
      noredirection_param:"noredirection",
      mobile_url : "#", // If we develop a Zachary Mobile Site, We can lite up this to redirect
      mobile_prefix : "http",
      cookie_hours : "2" 
    });*/

$(window).load(function() {
    

    // load hidden map
    loadHiddenMap();
});

</script> 
<!-- JS End //--> 

<!-- Start Facebook Like Open Graph Tags -->
<meta property="og:title" content="Zachary Engineering" />
<meta property="og:type" content="website" />
<meta property="og:url" content="http://visualjelly.com" />
<meta property="og:image" content="#" />
<meta property="og:site_name" content="Zachary Engineering" />
<meta property="fb:admins" content="#" />
<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-32880370-1']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

</script>
</head>
<body onload="initialize()">
<body>
<div>
  <div>
    <div>
      <div>
        <div>
          <div>
            <div id="snoload_wrap_v2">
              <div id="map_canvas"></div>
              <div id="snoload_form">
                <span class="snoLoad_Label">Address</span>
                <input id="address" type="text"/>
                <!--<span class="snoLoad_Label">Elevation (optional)</span>
                <input id="addressElevation" type="text"/><br/>-->
                <button onClick="calculateByAddress($('#address').val(), $('#addressElevation').val())">Calculate</button>
                <span class="snoLoad_Label">Latitude</span>
                <input id="latitude" type="text"/>
                <span class="snoLoad_Label">Longitude</span>
                <input id="longitude" type="text"/>
                <!--<span class="snoLoad_Label_consec">Elevation (optional)</span>
                <input id="locationElevation" type="text"/><br/>-->
                <button onClick="calculateByLocation(new google.maps.LatLng($('#latitude').val(), $('#longitude').val()), $('#locationElevation').val())">Calculate</button>
                <!--<span class="snoLoad_Label">Result</span> 
                <input id="snowloadResult" type="text"/>-->               
  
              </div>
            </div>
          </div>       
        </div>
      </div>
    </div>
</body>
</html>

推荐答案

问题是"El Dorado County"里面有两个空格,其他所有都只有一个空格.

The problem is that "El Dorado County" has two spaces in it, all the others only have one.

String.replace 仅在以这种方式调用时替换子字符串的第一个实例:

String.replace only replaces the first instance of a substring when called that way:

substr
将由newSubstr替换的String.它被视为文字字符串,并且 不解释为正则表达式. 仅第一个匹配项会被替换

substr
A String that is to be replaced by newSubstr. It is treated as a literal string and is not interpreted as a regular expression. Only the first occurrence will be replaced

因此,此代码:

  county = county.replace(" ", "_");

仅替换第一空格,产生与"El_Dorado_County"不匹配的"El_Dorado County".使用正则表达式替换所有空格:

only replaces the first space, yielding "El_Dorado County", which doesn't match "El_Dorado_County". Use a regex to replace all spaces:

正则表达式(模式)
RegExp对象或文字.匹配项或匹配项将替换为newSubstr或指定函数返回的值.

regexp (pattern)
A RegExp object or literal. The match or matches are replaced with newSubstr or the value returned by the specified function.

赞:

  const regex = /\s/gi;
  county = county.replace(regex, "_");

工作代码段:

var points = {
  westPlacer: [
    {
      lat: 39.373490,
      long: -120.235205
    }, {
      lat: 39.359037,
      long: -120.235319
    }, {
      lat: 39.343940,
      long: -120.235506
    }, {
      lat: 39.329288,
      long: -120.235731
    }, {
      lat: 39.314982,
      long: -120.236251
    }, {
      lat: 39.300705,
      long: -120.236422
    }, {
      lat: 39.285794,
      long: -120.236672
    }, {
      lat: 39.271297,
      long: -120.236402
    }, {
      lat: 39.256740,
      long: -120.236290
    }, {
      lat: 39.242320,
      long: -120.236151
    }, {
      lat: 39.227314,
      long: -120.236011
    }, {
      lat: 39.213102,
      long: -120.235911
    }, {
      lat: 39.198786,
      long: -120.235766
    }, {
      lat: 39.184576,
      long: -120.236484
    }, {
      lat: 39.184575,
      long: -120.236484
    }, {
      lat: 39.184119,
      long: -120.228208
    }, {
      lat: 39.170143,
      long: -120.228036
    }, {
      lat: 39.154701,
      long: -120.190700
    }, {
      lat: 39.154700,
      long: -120.190700
    }, {
      lat: 39.140015,
      long: -120.190456
    }, {
      lat: 39.125517,
      long: -120.190547
    }, {
      lat: 39.111406,
      long: -120.190561
    }, {
      lat: 39.096556,
      long: -120.190558
    }, {
      lat: 39.082067,
      long: -120.190534
    }, {
      lat: 39.077698,
      long: -120.188443
    }, {
      lat: 39.074887,
      long: -120.187134
    }, {
      lat: 39.071210,
      long: -120.185336
    }, {
      lat: 39.067491,
      long: -120.183625
    }, {
      lat: 39.053039,
      long: -120.183695
    }, {
      lat: 39.038354,
      long: -120.183683
    },
  ],
  eastPlacer: [
    {
      lat: 39.373603,
      long: -120.216838
    }, {
      lat: 39.358984,
      long: -120.216856
    }, {
      lat: 39.344107,
      long: -120.216683
    }, {
      lat: 39.329376,
      long: -120.216833
    }, {
      lat: 39.315090,
      long: -120.217128
    }, {
      lat: 39.300554,
      long: -120.217113
    }, {
      lat: 39.285834,
      long: -120.217154
    }, {
      lat: 39.271439,
      long: -120.217729
    }, {
      lat: 39.256922,
      long: -120.217728
    }, {
      lat: 39.242498,
      long: -120.217577
    }, {
      lat: 39.227876,
      long: -120.217551
    }, {
      lat: 39.213208,
      long: -120.217543
    }, {
      lat: 39.198558,
      long: -120.217517
    }, {
      lat: 39.183976,
      long: -120.217368
    }, {
      lat: 39.183975,
      long: -120.217368
    }, {
      lat: 39.183805,
      long: -120.172043
    }, {
      lat: 39.168931,
      long: -120.171713
    }, {
      lat: 39.154654,
      long: -120.171681
    }, {
      lat: 39.154653,
      long: -120.171681
    }, {
      lat: 39.139767,
      long: -120.171765
    }, {
      lat: 39.125323,
      long: -120.171739
    }, {
      lat: 39.111128,
      long: -120.171530
    }, {
      lat: 39.096527,
      long: -120.171580
    }, {
      lat: 39.082052,
      long: -120.171833
    }, {
      lat: 39.080031,
      long: -120.170910
    }, {
      lat: 39.076672,
      long: -120.169374
    }, {
      lat: 39.072898,
      long: -120.167611
    }, {
      lat: 39.067501,
      long: -120.165205
    }, {
      lat: 39.053084,
      long: -120.164571
    }, {
      lat: 39.038447,
      long: -120.165066
    }
  ]
};

var loads = {
  westWashoe: [
    {
      elevation: 5000,
      snowload: 30
    }, {
      elevation: 5100,
      snowload: 41
    }, {
      elevation: 5200,
      snowload: 52
    }, {
      elevation: 5300,
      snowload: 64
    }, {
      elevation: 5400,
      snowload: 75
    }, {
      elevation: 5500,
      snowload: 86
    }, {
      elevation: 6000,
      snowload: 142
    }, {
      elevation: 6500,
      snowload: 171
    }, {
      elevation: 7000,
      snowload: 200
    }, {
      elevation: 7500,
      snowload: 215
    }, {
      elevation: 8000,
      snowload: 229
    }, {
      elevation: 8500,
      snowload: 243
    }, {
      elevation: 9000,
      snowload: 271
    }, {
      elevation: 9500,
      snowload: 300
    }, {
      elevation: 10000,
      snowload: 357
    }
  ],
  eastWashoe: [
    {
      elevation: 5000,
      snowload: 30
    }, {
      elevation: 5100,
      snowload: 31
    }, {
      elevation: 5200,
      snowload: 33
    }, {
      elevation: 5300,
      snowload: 34
    }, {
      elevation: 5400,
      snowload: 35
    }, {
      elevation: 5500,
      snowload: 37
    }, {
      elevation: 6000,
      snowload: 43
    }, {
      elevation: 6500,
      snowload: 43
    }, {
      elevation: 7000,
      snowload: 57
    }, {
      elevation: 7500,
      snowload: 57
    }, {
      elevation: 8000,
      snowload: 86
    }, {
      elevation: 8500,
      snowload: 86
    }, {
      elevation: 9000,
      snowload: 114
    }, {
      elevation: 9500,
      snowload: 142
    }
  ],
  basinWashoe: [
    {
      elevation: 6000,
      snowload: 220
    }, {
      elevation: 6500,
      snowload: 235
    }, {
      elevation: 7000,
      snowload: 250
    }, {
      elevation: 7500,
      snowload: 265
    }, {
      elevation: 8000,
      snowload: 280
    }, {
      elevation: 8500,
      snowload: 295
    }, {
      elevation: 9000,
      snowload: 330
    }, {
      elevation: 9500,
      snowload: 390
    }, {
      elevation: 10000,
      snowload: 420
    }
  ],
  westPlacer: [
    {
      elevation: 1000,
      snowload: 10,
      snowdensity: 20,
      snowdepth: 3.0
    }, {
      elevation: 1600,
      snowload: 20,
      snowdensity: 20,
      snowdepth: 3.0
    }, {
      elevation: 2500,
      snowload: 29,
      snowdensity: 20,
      snowdepth: 3.0
    }, {
      elevation: 3000,
      snowload: 55,
      snowdensity: 20,
      snowdepth: 3.0
    }, {
      elevation: 3500,
      snowload: 70,
      snowdensity: 20,
      snowdepth: 3.8
    }, {
      elevation: 4000,
      snowload: 100,
      snowdensity: 20,
      snowdepth: 5.0
    }, {
      elevation: 4500,
      snowload: 160,
      snowdensity: 22.7,
      snowdepth: 6.5
    }, {
      elevation: 5000,
      snowload: 200,
      snowdensity: 24.5,
      snowdepth: 8.2
    }, {
      elevation: 5500,
      snowload: 260,
      snowdensity: 26.7,
      snowdepth: 9.7
    }, {
      elevation: 6000,
      snowload: 315,
      snowdensity: 27.0,
      snowdepth: 11.7
    }, {
      elevation: 6500,
      snowload: 375,
      snowdensity: 29.6,
      snowdepth: 12.7
    }, {
      elevation: 7000,
      snowload: 430,
      snowdensity: 30.1,
      snowdepth: 14.3
    }, {
      elevation: 7500,
      snowload: 490,
      snowdensity: 30.6,
      snowdepth: 16.0
    }, {
      elevation: 7501,
      snowload: 545,
      snowdensity: 32.4,
      snowdepth: 16.8
    }
  ],
  eastPlacer: [
    {
      elevation: 5500,
      snowload: 130,
      snowdensity: 23.6,
      snowdepth: 5.5
    }, {
      elevation: 6000,
      snowload: 190,
      snowdensity: 23.8,
      snowdepth: 7.9
    }, {
      elevation: 6500,
      snowload: 245,
      snowdensity: 24.5,
      snowdepth: 10.0
    }, {
      elevation: 7000,
      snowload: 300,
      snowdensity: 25.0,
      snowdepth: 12.0
    }, {
      elevation: 7500,
      snowload: 360,
      snowdensity: 25.2,
      snowdepth: 14.3
    }, {
      elevation: 8000,
      snowload: 400,
      snowdensity: 25.5,
      snowdepth: 15.7
    }, {
      elevation: 8001,
      snowload: 445,
      snowdensity: 25.7,
      snowdepth: 17.3
    }
  ],
  westElDorado: [
    {
      elevation: 2000,
      snowload: 20
    }, {
      elevation: 2500,
      snowload: 32
    }, {
      elevation: 3000,
      snowload: 45
    }, {
      elevation: 3500,
      snowload: 56
    }, {
      elevation: 4000,
      snowload: 68
    }, {
      elevation: 4500,
      snowload: 80
    }, {
      elevation: 5000,
      snowload: 90
    }, {
      elevation: 5500,
      snowload: 100
    }, {
      elevation: 6000,
      snowload: 110
    }, {
      elevation: 6500,
      snowload: 120
    }, {
      elevation: 7000,
      snowload: 128
    }, {
      elevation: 7500,
      snowload: 135
    }
  ],
  basinElDorado: [
    {
      elevation: 6000,
      snowload: 145
    }, {
      elevation: 6500,
      snowload: 160
    }, {
      elevation: 7000,
      snowload: 170
    }, {
      elevation: 7500,
      snowload: 180
    }
  ]
};

var countyCalculations = {
  Washoe_County: function(latLng, elevation) {
    var eastInfo = getSnowInfoForRegion("eastWashoe", elevation);
    var westInfo = getSnowInfoForRegion("westWashoe", elevation);
    var basinInfo = getSnowInfoForRegion("basinWashoe", elevation);

    return {
      county: "Washoe",
      snowload: "<br/>- if east of 395: " + round(eastInfo.snowload, 2) + " psf<br/>- if west of 395: " + round(westInfo.snowload, 2) + " psf<br/>- if in Tahoe Basin: " + round(basinInfo.snowload, 2) + " psf",
      //snowdensity: "<br/>- if east of 395: " + round(eastInfo.snowdensity, 2) + " pcf<br/>- if west of 395: " + round(westInfo.snowdensity, 2) + " pcf<br/>- if in Tahoe Basin: " + round(basinInfo.snowdensity, 2) + " pcf",
      //snowdepth: "<br/>- if east of 395: " + round(eastInfo.snowdepth, 2) + " feet<br/>- if west of 395: " + round(westInfo.snowdepth, 2) + " feet<br/>- if in Tahoe Basin: " + round(basinInfo.snowdepth, 2) + " feet"
    };
  },

  Placer_County: function(latLng, elevation) {
    // get closest basin border reference points
    var eastReferencePoint = getNearestPointForRegionByLatitude("eastPlacer", latLng.lat());
    var westReferencePoint = getNearestPointForRegionByLatitude("westPlacer", latLng.lat());

    // is the longitude east of or in the basin
    var eastSnowInfo;
    if(latLng.lng() > westReferencePoint.long)
      eastSnowInfo = getSnowInfoForRegion("eastPlacer", elevation);

    // is the longitude west of or in the basin
    var westSnowInfo;
    if(latLng.lng() < eastReferencePoint.long)
      westSnowInfo = getSnowInfoForRegion("westPlacer", elevation);

    var snowload;
    var snowdensity;
    var snowdepth;

    // east AND not west snowloads calculated (longitude is east of the basin)
    if(eastSnowInfo && !westSnowInfo) {
      snowload = eastSnowInfo.snowload;
      snowdensity = eastSnowInfo.snowdensity;
      snowdepth = eastSnowInfo.snowdepth;
    }

    // west AND now east snowloads calculated (longitude is west of the basin)
    if(!eastSnowInfo && westSnowInfo) {
      snowload = westSnowInfo.snowload;
      snowdensity = westSnowInfo.snowdensity;
      snowdepth = westSnowInfo.snowdepth;
    }

    // were the east AND west snowloads calculated (longitude is in the basin)
    if(eastSnowInfo && westSnowInfo) {
      snowload = interpolate(latLng.lng(), westReferencePoint.long, eastReferencePoint.long, westSnowInfo.snowload, eastSnowInfo.snowload);
      snowdensity = interpolate(latLng.lng(), westReferencePoint.long, eastReferencePoint.long, westSnowInfo.snowdensity, eastSnowInfo.snowdensity);
      snowdepth = interpolate(latLng.lng(), westReferencePoint.long, eastReferencePoint.long, westSnowInfo.snowdepth, eastSnowInfo.snowdepth);
    }

    return {
      county: "Placer",
      snowload: round(snowload, 2) + " psf",
      snowdensity: round(snowdensity, 2) + " pcf",
      snowdepth: round(snowdepth, 2) + " feet"
    };
  },

  Nevada_County: function(latLng, elevation) {
    // Truckee uses Placer county algorithm
    var info = countyCalculations.Placer_County(latLng, elevation);
    info.county = "Nevada (Truckee only)";
    return info;
  },

  El_Dorado_County: function(latLng, elevation) {
    var westInfo = getSnowInfoForRegion("westElDorado", elevation);
    var basinInfo = getSnowInfoForRegion("basinElDorado", elevation);

    return {
      county: "El Dorado",
      snowload: "<br/>- if on West Slope: " + round(westInfo.snowload, 2) + " psf<br/>- if in Tahoe Basin: " + round(basinInfo.snowload, 2) + " psf",
      //snowdensity: "<br/>- if on West Slope: " + round(westInfo.snowdensity, 2) + " pcf<br/>- if in Tahoe Basin: " + round(basinInfo.snowdensity, 2) + " pcf",
      //snowdepth: "<br/>- if on West Slope: " + round(westInfo.snowdepth, 2) + " feet<br/>- if in Tahoe Basin: " + round(basinInfo.snowdepth, 2) + " feet"
    };
  },

  Douglas_County: function(latLng, elevation) {
    return {
      county: "Douglas",
      snowload: (elevation <= 6000 ? 30 : 150) + " psf"
    };
  }
};

calculateSnowInfo = function(input, elevationOverride, success, error) {
  var geocoderService = new google.maps.Geocoder();
  geocoderService.geocode(input, function(results, status) {
    if(status != google.maps.GeocoderStatus.OK)
      error("Failed to translate address to coordinates via Google: " + status);
    else {
      var location = (input.latLng ? input.latLng : results[0].geometry.location);
      var formattedAddress = results[0].formatted_address;
      var county;
      var city;

      var result = results[0];
      for(componentIndex in result.address_components) {
        var component = result.address_components[componentIndex];
        for(typeIndex in component.types) {
          if(component.types[typeIndex] == "locality")
            city = component.long_name;
          if(component.types[typeIndex] == "administrative_area_level_2")
            county = component.long_name;
        }
      }

      var countyCalculate;
      if(!county) {
        error("Unable to determine county from address");
        return;
      }

      const regex = /\s/gi;
      county = county.replace(regex, "_");

      if(countyCalculations[county]) {
        if(county == "Nevada" && city != "Truckee") {
          error("The address provided appears to be in Nevada county outside the limits of Truckee.  Only Truckee addresses are supported for this county.");
          return;
        }
        countyCalculate = countyCalculations[county];
      } else {
        error("The address provided appears to be in " + county + " county (only Placer, Washoe, Nevada, El Dorado, and Douglas counties are supported)");
        return;
      }

      if(elevationOverride) {
        var info = countyCalculate(location, elevationOverride);
        info.location = location;
        info.formattedAddress = formattedAddress;
        info.elevation = elevation + " feet (overriden)";
        success(info);
      } else {
        var elevationService = new google.maps.ElevationService();
        elevationService.getElevationForLocations({
          locations: [location]
        }, function(results, status) {
          if(status != google.maps.ElevationStatus.OK)
            error("Failed to get elevation data from Google: " + status);
          else {
            elevation = Math.round(results[0].elevation * 3.2808399);

            var info = countyCalculate(location, elevation);
            info.location = location;
            info.formattedAddress = formattedAddress;
            info.elevation = elevation + " feet";
            success(info);
          }
        });
      }
    }
  });
}

getNearestPointForRegionByLatitude = function(region, latitude) {
  var pointsRegion = points[region];

  var bestPoint;
  var bestDelta;

  for(pointIndex in pointsRegion) {
    point = pointsRegion[pointIndex];
    delta = Math.abs(point.lat - latitude);
    if(!bestPoint || delta < bestDelta) {
      bestDelta = delta;
      bestPoint = point;
    }
  }

  return bestPoint;
}

getSnowInfoForRegion = function(region, elevation) {
  var loadsRegion = loads[region];

  var lowerLoadInfo = loadsRegion[0];
  for(loadInfoIndex in loadsRegion) {
    loadInfo = loadsRegion[loadInfoIndex];
    if(loadInfo.elevation > elevation)
      break;
    lowerLoadInfo = loadInfo;
  }

  var upperLoadInfo = loadsRegion[loadsRegion.length - 1];
  for(loadInfoIndex in loadsRegion) {
    loadInfo = loadsRegion[loadInfoIndex];
    if(loadInfo.elevation >= elevation) {
      upperLoadInfo = loadInfo;
      break;
    }
  }

  var results = {};
  if(lowerLoadInfo.elevation == upperLoadInfo.elevation)
    return {
      snowload: lowerLoadInfo.snowload,
      snowdensity: lowerLoadInfo.snowdensity,
      snowdepth: lowerLoadInfo.snowdepth
    };
  else
    return {
      snowload: interpolate(elevation, lowerLoadInfo.elevation, upperLoadInfo.elevation, lowerLoadInfo.snowload, upperLoadInfo.snowload),
      snowdensity: interpolate(elevation, lowerLoadInfo.elevation, upperLoadInfo.elevation, lowerLoadInfo.snowdensity, upperLoadInfo.snowdensity),
      snowdepth: interpolate(elevation, lowerLoadInfo.elevation, upperLoadInfo.elevation, lowerLoadInfo.snowdepth, upperLoadInfo.snowdepth)
    };
}

interpolate = function(source, sourceLower, sourceUpper, targetLower, targetUpper) {
  return (((source - sourceLower) / (sourceUpper - sourceLower)) * (targetUpper - targetLower)) + targetLower;
}

round = function(number, places) {
  var offset = 10 * places;
  return Math.round(number * offset) / offset;
}

/*
Title:      Zachary Engineering OVER_RIDE STYLES
Author:     matt@mattabron.com // Matt Abron: visualjelly.com 
*/
.inside-page #wrapper #container .container_12 .main-content .grid_8.alpha .post_block .socshare .facebookdiv {
    float: right;
}
#map_canvas {
    float: left;
    height: 870px;
    width: 607px;
    background-color: aqua;
}
#map3d {
    float: left;
    height: 870px;
    width: 607px;
    margin-top: 15px;
    margin-left: 15px;
}
.inside-page #wrapper #container .container_12 .main-content .grid_12.alpha.omega .project #snoload_wrap_v2 #snoload_form #address, #latitude, #longitude, #county, #latitude2, #longitude2, #county2, #elevation, #snowloadResult {
    float: right;
    width: 140px;
    margin-bottom: 9px;
}
.inside-page #wrapper #container .container_12 .main-content .grid_12.alpha.omega .project #snoload_wrap_v2 #snoload_form button {
    margin-left: 10px;
    width: 200px;
}
.snoLoad_Label {
    float: left;
    padding-top: 7px;
    text-transform: uppercase;
    font-size: 12px;
}
.snoLoad_Label_consec {
    float: left;
    padding-top: 16px;
    text-transform: uppercase;
    font-size: 12px;
}
    
#snoLoadVersion {
    height: 160px;
    width: 216px;
    position: absolute;
    left: 126px;
    top: -545px;
    z-index: 50;
}
.SnoLoadCentered {
    text-align: center;
    text-transform: uppercase;
}
#wrapper #container .container_12 .main-content .grid_12.alpha.omega .project #snoload_wrap_v2 #map_canvas p {
    font-size: 10px;
}
#element.style {
    cursor: url("http://maps.gstatic.com/mapfiles/openhand_8_8.cur"), default;
    left: 0;
    position: absolute;
    top: 0;
    z-index: 1;
}

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="robots" content="index, follow" />
<meta name="keywords" content="" />
<meta name="description" content="" />
<title>ZACHARY ENGINEERING | Residential Engineering | Verion3</title>

<!-- CSS Start //-->

<link href="css/custom.css" rel="stylesheet" type="text/css">

<!-- JS Start //--> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
    
    
<script type="text/javascript">
    var $ = jQuery.noConflict();
</script> 
    
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?key=AIzaSyBBiAQWE_6cpjMhaItS0N6Ew3KjHb6JOqg">
</script> 

<script type="text/javascript" src="js/snowloadCalculator.js"></script>
<!-- Custom Functions - Main Js file --> 
<script type="text/javascript">
      var map;
      var infowindow = new google.maps.InfoWindow();

      function initialize() {
        var myOptions = {
          center: new google.maps.LatLng(39.085304, -120.031185),
          zoom: 11,
          mapTypeId: google.maps.MapTypeId.HYBRID
        };
        map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

        google.maps.event.addListener(map, 'click', function(clickEvent) {calculateByLocation(clickEvent.latLng);});
      }

      function calculateByAddress(address, elevationOverride) {
        calculateSnowInfo({address: address}, elevationOverride, successCallback, errorCallback);
      }

      function calculateByLocation(latLng, elevationOverride) {
        calculateSnowInfo({latLng: latLng}, elevationOverride, successCallback, errorCallback);
      }

      function successCallback(info) {
        var content = "Address: " + info.formattedAddress + "<br/>County: " + info.county + "<br/>Elevation: " + info.elevation + "<br/>Ground Snow Load: " + info.snowload + "<br/>";
        content += "Snow Density: " + (info.snowdensity ? info.snowdensity : "no data") + "<br/>";
        content += "Maximum Anticipated Snow Depth: " + (info.snowdensity ? info.snowdepth : "no data");
<!--Location: " + info.location + "<br/>-->
        
        infowindow.setContent(content);
        infowindow.setPosition(info.location);
        
        infowindow.open(map);

        map.setCenter(info.location);
        map.setZoom(19);
        
        $("#address").val(info.formattedAddress);
        $("#addressElevation").val(info.elevation);
        $("#latitude").val(info.location.lat());
        $("#longitude").val(info.location.lng());
        $("#locationElevation").val(info.elevation);
      }

      function errorCallback(errorMessage) {alert(errorMessage);}
</script> 
<script type="text/javascript">
/*// Redirect if mobile device
    SA.redirection_mobile ({
      noredirection_param:"noredirection",
      mobile_url : "#", // If we develop a Zachary Mobile Site, We can lite up this to redirect
      mobile_prefix : "http",
      cookie_hours : "2" 
    });*/

$(window).load(function() {
    

    // load hidden map
    initialize();
});

</script> 
<!-- JS End //--> 
</head>
<body onload="initialize()">
<body>
<div>
  <div>
    <div>
      <div>
        <div>
          <div>
            <div id="snoload_wrap_v2">
              <div id="map_canvas"></div>
              <div id="snoload_form">
                <span class="snoLoad_Label">Address</span>
                <input id="address" type="text"/>
                <!--<span class="snoLoad_Label">Elevation (optional)</span>
                <input id="addressElevation" type="text"/><br/>-->
                <button onClick="calculateByAddress($('#address').val(), $('#addressElevation').val())">Calculate</button>
                <span class="snoLoad_Label">Latitude</span>
                <input id="latitude" type="text"/>
                <span class="snoLoad_Label">Longitude</span>
                <input id="longitude" type="text"/>
                <!--<span class="snoLoad_Label_consec">Elevation (optional)</span>
                <input id="locationElevation" type="text"/><br/>-->
                <button onClick="calculateByLocation(new google.maps.LatLng($('#latitude').val(), $('#longitude').val()), $('#locationElevation').val())">Calculate</button>
                <!--<span class="snoLoad_Label">Result</span> 
                <input id="snowloadResult" type="text"/>-->               
  
              </div>
            </div>
          </div>       
        </div>
      </div>
    </div>
</body>
</html>

这篇关于Google Map API和JavaScript问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆