使用Openlayers 5检查坐标是否有效EPSG 3857

时间:2018-08-18 22:29:34

标签: openlayers map-projections openlayers-5

我正在使用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.';
    }       
  }

谢谢

1 个答案:

答案 0 :(得分:1)

您可以检查输入内容是否在投影范围内。此projection的可接受值为:

最低X:-20026376.39
敏Y:-20048966.10
最高X:20026376.39
最大值Y:20048966.10

您可以将这些限制限制为要映射的区域。