stairs have no direction anymore, our altitude system replaces this
This commit is contained in:
parent
d4c6f1ed9d
commit
822e3ed819
3 changed files with 9 additions and 33 deletions
|
@ -181,15 +181,10 @@ class EditorViewSet(ViewSet):
|
||||||
graphedges,
|
graphedges,
|
||||||
graphnodes
|
graphnodes
|
||||||
)
|
)
|
||||||
return Response(sum([self._get_geojsons(obj) for obj in results], ()))
|
return Response([obj.to_geojson(instance=obj) for obj in results])
|
||||||
else:
|
else:
|
||||||
raise ValidationError('No level or space specified.')
|
raise ValidationError('No level or space specified.')
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def _get_geojsons(obj):
|
|
||||||
return (((obj.to_shadow_geojson(),) if hasattr(obj, 'to_shadow_geojson') else ()) +
|
|
||||||
(obj.to_geojson(instance=obj),))
|
|
||||||
|
|
||||||
@list_route(methods=['get'])
|
@list_route(methods=['get'])
|
||||||
def geometrystyles(self, request, *args, **kwargs):
|
def geometrystyles(self, request, *args, **kwargs):
|
||||||
return Response({
|
return Response({
|
||||||
|
@ -198,7 +193,7 @@ class EditorViewSet(ViewSet):
|
||||||
'hole': 'rgba(255, 0, 0, 0.3)',
|
'hole': 'rgba(255, 0, 0, 0.3)',
|
||||||
'door': '#ffffff',
|
'door': '#ffffff',
|
||||||
'area': 'rgba(85, 170, 255, 0.2)',
|
'area': 'rgba(85, 170, 255, 0.2)',
|
||||||
'stair': 'rgba(160, 0, 160, 0.5)',
|
'stair': '#a000a0',
|
||||||
'obstacle': '#999999',
|
'obstacle': '#999999',
|
||||||
'lineobstacle': '#999999',
|
'lineobstacle': '#999999',
|
||||||
'column': '#888888',
|
'column': '#888888',
|
||||||
|
|
|
@ -415,15 +415,19 @@ editor = {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
_weight_for_zoom: function() {
|
_weight_for_zoom: function() {
|
||||||
return Math.pow(2, editor.map.getZoom())*0.3;
|
return Math.pow(2, editor.map.getZoom())*0.1;
|
||||||
},
|
},
|
||||||
_adjust_line_zoom: function() {
|
_adjust_line_zoom: function() {
|
||||||
var weight = Math.pow(2, editor.map.getZoom())*0.3,
|
var weight = Math.pow(2, editor.map.getZoom())*0.1,
|
||||||
factor = Math.pow(2, editor.map.getZoom());
|
factor = Math.pow(2, editor.map.getZoom());
|
||||||
editor._arrow_colors = [];
|
editor._arrow_colors = [];
|
||||||
for(var i=0;i<editor._line_geometries.length;i++) {
|
for(var i=0;i<editor._line_geometries.length;i++) {
|
||||||
var layer = editor._line_geometries[i];
|
var layer = editor._line_geometries[i];
|
||||||
layer.setStyle({weight: weight});
|
if (layer.feature.properties.type === 'stair') {
|
||||||
|
layer.setStyle({weight: weight/2});
|
||||||
|
} else {
|
||||||
|
layer.setStyle({weight: weight});
|
||||||
|
}
|
||||||
if (layer.feature.properties.type === 'graphedge') {
|
if (layer.feature.properties.type === 'graphedge') {
|
||||||
var start_pos = 0.4,
|
var start_pos = 0.4,
|
||||||
end_pos = layer.length-0.4,
|
end_pos = layer.length-0.4,
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
from collections import OrderedDict
|
|
||||||
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
from shapely.geometry import CAP_STYLE, JOIN_STYLE, mapping
|
from shapely.geometry import CAP_STYLE, JOIN_STYLE, mapping
|
||||||
|
@ -70,27 +68,6 @@ class Stair(SpaceGeometryMixin, models.Model):
|
||||||
verbose_name_plural = _('Stairs')
|
verbose_name_plural = _('Stairs')
|
||||||
default_related_name = 'stairs'
|
default_related_name = 'stairs'
|
||||||
|
|
||||||
def to_geojson(self, *args, **kwargs):
|
|
||||||
result = super().to_geojson(*args, **kwargs)
|
|
||||||
original_geometry = result['geometry']
|
|
||||||
draw = self.geometry.buffer(0.05, join_style=JOIN_STYLE.mitre, cap_style=CAP_STYLE.flat)
|
|
||||||
result['geometry'] = format_geojson(mapping(draw))
|
|
||||||
result['original_geometry'] = original_geometry
|
|
||||||
return result
|
|
||||||
|
|
||||||
def to_shadow_geojson(self):
|
|
||||||
shadow = self.geometry.parallel_offset(0.03, 'right', join_style=JOIN_STYLE.mitre)
|
|
||||||
shadow = shadow.buffer(0.019, join_style=JOIN_STYLE.mitre, cap_style=CAP_STYLE.flat)
|
|
||||||
return OrderedDict((
|
|
||||||
('type', 'Feature'),
|
|
||||||
('properties', OrderedDict((
|
|
||||||
('type', 'shadow'),
|
|
||||||
('original_type', self.__class__.__name__.lower()),
|
|
||||||
('original_id', self.id),
|
|
||||||
))),
|
|
||||||
('geometry', format_geojson(mapping(shadow), round=False)),
|
|
||||||
))
|
|
||||||
|
|
||||||
|
|
||||||
class Obstacle(SpaceGeometryMixin, models.Model):
|
class Obstacle(SpaceGeometryMixin, models.Model):
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue