minor map tweaks 37802
authorMark Wells <mark@freeside.biz>
Wed, 5 Oct 2016 23:11:27 +0000 (16:11 -0700)
committerMark Wells <mark@freeside.biz>
Wed, 5 Oct 2016 23:11:27 +0000 (16:11 -0700)
httemplate/elements/mapselect.html
httemplate/search/tower-map.html

index 7d1447f..95c96ca 100644 (file)
@@ -21,7 +21,7 @@ my %opt = @_;
   <input type="hidden" class="gllpLatitude" id="map_lat">
   <input type="hidden" class="gllpLongitude" id="map_lon">
   <input type="hidden" class="gllpElevation" id="map_alt">
-  <input type="hidden" class="gllpZoom" id="map_zoom" value="12">
+  <input type="hidden" class="gllpZoom" id="map_zoom">
   <div class="gllpMap"></div>
 </fieldset>
 <br/>
@@ -32,14 +32,6 @@ $(function() {
   var container = $('#latlonpicker');
   var map = gMapsLatLonPickerState['latlonpicker'].vars.map;
 
-  var lat = $('#latitude');
-  var lon = $('#longitude');
-  var alt = $('#altitude');
-  $('#map_lat').val(lat.val());
-  $('#map_lon').val(lon.val());
-  $('#map_alt').val(alt.val());
-  $(document).trigger('gllp_update_fields');
-
   $(document).on('location_changed', function(ev, obj) {
     lat.val($('#map_lat').val());
     lon.val($('#map_lon').val());
@@ -68,5 +60,23 @@ $(function() {
       $(document).trigger('gllp_update_fields');
     }
   });
+
+  // load initial values
+  var lat = $('#latitude');
+  var lon = $('#longitude');
+  var alt = $('#altitude');
+  if (lat.val() && lon.val()) {
+    $('#map_lat').val(lat.val());
+    $('#map_lon').val(lon.val());
+    $('#map_alt').val(alt.val());
+    $('#map_zoom').val(12);
+  } else {
+    // uh. North America? that's where Map::Splat works right now.
+    $('#map_lat').val(54.5259614);
+    $('#map_lon').val(-105.25511870000003);
+    $('#map_zoom').val(3);
+  }
+  $(document).trigger('gllp_update_fields');
+
 });
 </script>
index 4460db8..559d83d 100755 (executable)
@@ -77,6 +77,17 @@ var clickHandler = function(ev) {
   }
 };
 
+var dblclickHandler = function(ev) {
+  // do everything as for single click
+  clickHandler(ev);
+  // plus zoom to the feature
+  var feature = ev.feature;
+  if (feature.getGeometry().getType() == 'Point') {
+    map.setCenter(feature.getGeometry().get());
+    map.setZoom(12);
+  }
+};
+
 var zoomLayer = function(layer) {
   // takes a google.maps.Data object
   var bounds = new google.maps.LatLngBounds;
@@ -97,6 +108,7 @@ var tower_data = new google.maps.Data;
 tower_data.addGeoJson(<% encode_json($tower_data) %>);
 tower_data.setStyle(markerStyle);
 tower_data.addListener('click', clickHandler);
+tower_data.addListener('dblclick', dblclickHandler);
 
 var towernums = <% encode_json(\@towernums) %>;
 var tower_svc_data = {};