![](/img/trans.png)
[英]OpenLayers LonLat transformations are not within correct projection bounds
[英]How to check for LonLat validity in a specific projection, in OpenLayers
我想使用方法isValidLonLat来检查坐标的有效性。
通常,我将坐标插入EPSG:4326投影中,但isValidLonLat方法使用EPSG:900913中的世界范围进行检查。
例如:
map.isValidLonLat(new OpenLayers.LonLat(-8, 400)) // returns true
也许应该认为这是错误的,因为纬度超过180º。
我知道为什么它返回true。 如前所述,我注意到该检查是使用EPSG:900913中的边界进行的。
问题是:有没有办法告诉该方法应该使用给定的投影进行检查(此处为EPSG:4326)?
谢谢
您可以将坐标从EPSG:4326转换为EPSG:900913,然后进行检查。 为此,您可以使用proj4js库
请参阅以下示例:
var SourceProjection = new Proj4js.Proj('EPSG:4326');
var DestinationProjection = new Proj4js.Proj('EPSG:900913');
var Point = new Proj4js.Point(longitude, latitude);
Proj4js.transform(SourceProjection, DestinationProjection, Point);
map.isValidLonLat(new OpenLayers.LonLat(Point.x, Point.y));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.