我正在使用openlayers 5和angular6。
我创建了一个简单的表单,用户可以给出EPSG3857坐标的X和Y,提交并在此处渲染点,地图将在此处缩放。我为此使用了矢量层。
我想检查XY是否以某种方式有效的EPSG3857坐标。
我尝试使用try/catch
块,但这在我第二次提交表单时有效。
我提交了一个疯狂的XY,例如6.34 2401111118651.91
,我提交了该点,并且地图在白色背景中无处缩放。我必须再次提交相同的表格,try/catch
才能真正发现错误。
如何解决此问题并立即检查坐标?这是我写的代码
coordsSubmitted(){
let point = [this.coordsForm.controls.coordsx.value, this.coordsForm.controls.coordsy.value];
try {
this.coordFeature.setGeometry(new Point(point));
this.coordsource.addFeatures([this.coordFeature]) ;
this.olmap.getView().animate({
center: point,
duration: 2500,
zoom:10
});
} catch (error) {
this.coordsFormErrorMsg = 'Error. Only EPSG 3857 coords.';
}
}
谢谢
答案 0 :(得分:1)
您可以检查输入内容是否在投影范围内。此projection的可接受值为:
最低X:-20026376.39
敏Y:-20048966.10
最高X:20026376.39
最大值Y:20048966.10
您可以将这些限制限制为要映射的区域。