Browse Source

test FoV antenna

Samuel 7 years ago
parent
commit
ccd29cd283

+ 4 - 2
panorama/admin.py

@@ -20,9 +20,11 @@ class ReferenceInline(admin.TabularInline):
 class PanoramaAdmin(admin.ModelAdmin):
 class PanoramaAdmin(admin.ModelAdmin):
     model = Panorama
     model = Panorama
     inlines = (ReferenceInline, )
     inlines = (ReferenceInline, )
-    list_display = ('name', 'has_tiles', 'latitude', 'longitude', 'altitude', 'loop')
+    list_display = ('name', 'has_tiles', 'latitude', 'longitude', 'altitude',
+                    'loop', 'antenne_cap_min', 'antenne_cap_max')
     fields = ('name', ('image', 'image_width', 'image_height'),
     fields = ('name', ('image', 'image_width', 'image_height'),
-              'loop', ('latitude', 'longitude'), 'altitude')
+              'loop', ('latitude', 'longitude'), 'altitude', 'antenne_cap_min',
+             'antenne_cap_max')
     readonly_fields = ('image_width', 'image_height')
     readonly_fields = ('image_width', 'image_height')
     actions = ('regenerate_tiles', )
     actions = ('regenerate_tiles', )
 
 

+ 29 - 0
panorama/migrations/0006_auto_20180423_0746.py

@@ -0,0 +1,29 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.13 on 2018-04-23 07:46
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('panorama', '0005_auto_20170912_2147'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='panorama',
+            name='antenne_cap_max',
+            field=models.PositiveIntegerField(default=0, verbose_name='antenna_cap_max'),
+        ),
+        migrations.AddField(
+            model_name='panorama',
+            name='antenne_cap_min',
+            field=models.PositiveIntegerField(default=0, verbose_name='antenna_cap_min'),
+        ),
+        migrations.AlterUniqueTogether(
+            name='reference',
+            unique_together=set([('reference_point', 'panorama')]),
+        ),
+    ]

+ 2 - 0
panorama/models.py

@@ -134,6 +134,8 @@ class Panorama(ReferencePoint):
                               height_field="image_height")
                               height_field="image_height")
     image_width = models.PositiveIntegerField(default=0, verbose_name=_("image width"))
     image_width = models.PositiveIntegerField(default=0, verbose_name=_("image width"))
     image_height = models.PositiveIntegerField(default=0, verbose_name=_("image height"))
     image_height = models.PositiveIntegerField(default=0, verbose_name=_("image height"))
+    antenne_cap_min = models.PositiveIntegerField(default=0, verbose_name=_("antenna_cap_min"))
+    antenne_cap_max = models.PositiveIntegerField(default=0, verbose_name=_("antenna_cap_max"))
     # Set of references, i.e. reference points with information on how
     # Set of references, i.e. reference points with information on how
     # they relate to this panorama.
     # they relate to this panorama.
     references = models.ManyToManyField(ReferencePoint, through='Reference',
     references = models.ManyToManyField(ReferencePoint, through='Reference',

+ 20 - 0
panorama/static/panorama/js/pano.js

@@ -1344,3 +1344,23 @@ function hide_map(){
     });
     });
 
 
  }
  }
+
+function antenna_cap(lat, lng, cap_min, cap_max, map_view){
+    console.log("antenna_cap")
+    viewField = null
+    console.log(viewField == null)
+    cap_antenna = {cap_min: cap_min, cap_max: cap_max}
+    console.log(lat, lng, cap_antenna)
+    viewField = getCone(lat, lng, 0, cap_antenna, 500);
+    viewField.addTo(map_view);
+    console.log(viewField == null)
+    console.log("antenna_cap ok")
+}
+function remove_antenna_cap(map_view){
+    console.log('remove ')
+    console.log(viewField)
+    if (viewField != undefined) {
+        map_view.removeLayer(viewField)
+    }
+    console.log('remove end')
+}

+ 11 - 1
panorama/templates/panorama/main.html

@@ -71,6 +71,7 @@
     <script type='text/javascript' src="{% static "panorama/leaflet/v0.7.7/leaflet.js" %}"></script>
     <script type='text/javascript' src="{% static "panorama/leaflet/v0.7.7/leaflet.js" %}"></script>
     <script type='text/javascript' src="{% static "panorama/js/jquery-3.0.0.min.js" %}"></script>
     <script type='text/javascript' src="{% static "panorama/js/jquery-3.0.0.min.js" %}"></script>
     <script type='text/javascript' src="{% static "panorama/js/leaflet.markercluster/0.4.0/leaflet.markercluster.js" %}"></script>
     <script type='text/javascript' src="{% static "panorama/js/leaflet.markercluster/0.4.0/leaflet.markercluster.js" %}"></script>
+    <script type='text/javascript' src="{% static "panorama/js/pano.js" %}"></script>
     <script>
     <script>
         var map;
         var map;
         var ajaxRequest;
         var ajaxRequest;
@@ -148,7 +149,8 @@
                     $('#id_newpano-altitude').val(parseInt(data));
                     $('#id_newpano-altitude').val(parseInt(data));
                     $('#id_newrefpoint-altitude').val(parseInt(data));
                     $('#id_newrefpoint-altitude').val(parseInt(data));
                 });
                 });
-        }
+        };
+
         function SearchPlace() {
         function SearchPlace() {
             $('#search-btn').click(function(e){
             $('#search-btn').click(function(e){
                 e.preventDefault();
                 e.preventDefault();
@@ -254,6 +256,14 @@
             {% for pano in panoramas %}
             {% for pano in panoramas %}
                 var marker = L.marker([{{ pano.latitude }}, {{ pano.longitude }}], {icon: panoIcon, riseOnHover: true});
                 var marker = L.marker([{{ pano.latitude }}, {{ pano.longitude }}], {icon: panoIcon, riseOnHover: true});
                 marker.on("click",function(){document.location.href="{% url 'panorama:view_pano' pano.id %}"});
                 marker.on("click",function(){document.location.href="{% url 'panorama:view_pano' pano.id %}"});
+                marker.on("mouseover", antenna_cap( 
+                    {{ pano.latitude }},
+                    {{ pano.longitude }}, 
+                    {{ pano.antenne_cap_min }}, 
+                    {{ pano.antenne_cap_max }}, 
+                    map)
+                );
+                marker.on("mouseout", remove_antenna_cap(map));
                 var popup = marker.bindPopup('{{ pano.name }}',{className : 'markerpopup', closeButton: false,});
                 var popup = marker.bindPopup('{{ pano.name }}',{className : 'markerpopup', closeButton: false,});
                 popup.on('mouseover', marker.openPopup);
                 popup.on('mouseover', marker.openPopup);
                 popup.on('mouseout', marker.closePopup);
                 popup.on('mouseout', marker.closePopup);

+ 2 - 1
panorama/templates/panorama/view.html

@@ -33,6 +33,8 @@
       };
       };
       var panorama_lat = {{ panorama.latitude }};
       var panorama_lat = {{ panorama.latitude }};
       var panorama_lng = {{ panorama.longitude }};
       var panorama_lng = {{ panorama.longitude }};
+      var panorama_cap_min = {{ panorama.antenne_cap_min }};
+      var panorama_cap_max = {{ panorama.antenne_cap_max }};
     </script>
     </script>
     <script src="{% static "panorama/js/js.cookie.js" %}"></script>
     <script src="{% static "panorama/js/js.cookie.js" %}"></script>
     <script src="{% static "panorama/js/pano.js" %}"></script>
     <script src="{% static "panorama/js/pano.js" %}"></script>
@@ -104,7 +106,6 @@
               markerClusters.addLayer( marker );
               markerClusters.addLayer( marker );
           {% endif %}
           {% endif %}
       {% endfor %}
       {% endfor %}
-
       var pointsOfInterest = L.layerGroup();
       var pointsOfInterest = L.layerGroup();
       {% for poi in poi_list %}
       {% for poi in poi_list %}
           var marker = L.marker([{{ poi.latitude }}, {{ poi.longitude }}], {icon: poiIcons['{{ poi.kind }}'], riseOnHover: true});
           var marker = L.marker([{{ poi.latitude }}, {{ poi.longitude }}], {icon: poiIcons['{{ poi.kind }}'], riseOnHover: true});