我正在为项目使用OpenLayers 5,但在这里找不到任何东西。过去,OpenLayers曾经有过restrictExtent,但是似乎已经消失了。有没有办法限制或限制用户垂直平移的能力,以使他们不能将其拖离屏幕?
我尝试maxExtent在包含地图和视图的图层上同时使用,并且通过在视图上进行操作来限制可见的内容。但是,我无法限制平移。任何帮助都会很棒。
map.js
componentDidMount() {
BASE_VIEW.setMinZoom(this.getMinZoom());
this.resize();
this.map = new Map({
controls: defaultControls().extend([MOUSE_POSITION_CONTROL]),
layers: [BASE_LAYER],
target: 'map',
view: BASE_VIEW
});
}
Run Code Online (Sandbox Code Playgroud)
map-constants.js
const baseView = new View({
center: fromLonLat(conus, projection),
projection: projection,
zoom: 4,
extent: [Number.NEGATIVE_INFINITY, -43, Number.POSITIVE_INFINITY, 43]
});
Run Code Online (Sandbox Code Playgroud) 我的课程和导师模型之间存在多对多关系。我试图做到这一点,以便当您使用表单为新导师创建记录时,您可以选择他们可以教授的课程。我尝试尽我所能使用和修改上一个问题中的代码,但我不完全理解它,所以我确信我没有做对。提交表单后,不会保存课程和导师之间的链接。我需要对代码进行哪些更改才能保存?
模型.py
class Tutor(models.Model):
FirstName = models.CharField(max_length=50)
LastName = models.CharField(max_length=50)
Email = models.EmailField(max_length=100)
PhoneNumber = models.CharField(max_length=10, )
RequestedHours = models.DecimalField(max_digits=3, decimal_places=1)
class Course(models.Model):
SubjectID = models.ForeignKey(Subject, related_name='subjectCourse')
Department = models.CharField(max_length=4)
Number = models.CharField(max_length=4)
Name = models.CharField(max_length=200)
TutorForCourse = models.ManyToManyField(Tutor)
Run Code Online (Sandbox Code Playgroud)
表格.py
class TutorForm(forms.ModelForm):
class Meta:
model = Tutor
fields = ('FirstName', 'LastName', 'Email', 'PhoneNumber',
'RequestedHours',)
labels = {
'FirstName': 'First Name',
'LastName': 'Last Name',
'Email': 'Email',
'PhoneNumber': 'Phone Number',
'RequestedHours': 'Requested Hours',
}
courses = forms.ModelMultipleChoiceField(queryset=Course.objects.all())
def __init__(self, *args, …Run Code Online (Sandbox Code Playgroud)