地图上的openlayers 2.12点未在加载事件中加载

时间:2019-03-14 21:38:09

标签: gis openlayers openstreetmap

我正在处理Open Layer V2.12地图。 我会在地图上绘制位置点。加载地图时,这些点不会显示。但是,缩小时,它将再次按相同的方法,并且将加载点。

Points are in green in the image

这是代码在控制器中初始加载地图时失败的代码:

var env = new Envelope(filterGeo.MinX, filterGeo.MaxX, filterGeo.MinY, filterGeo.MaxY);

var topLeft = transformer.TransformLeft(env.TopLeft().ToDoubleArray());


var bottomRight = transformer.TransformLeft(env.BottomRight().ToDoubleArray());

var tranenv = new Envelope(new Coordinate(topLeft[0], topLeft[1]),

new Coordinate(bottomRight[0], bottomRight[1]));

这些值将按如下方式加载到var env中:

MaxX    -8306659.542616     double,
MaxY    5263801.21133474    double,
MinX    -10150932.160824    double,
MinY    4517775.81537526    double

Var左上角和var右下角的转换将无法正常运行。 左上角的值为:

        [0] -1129996599219.9919 double
        [1] NaN double

右下角的值是:

        [0] -924693110477.1 double
        [1] NaN double

我不确定左上角和右下角正在进行的转换。

public static Coordinate TopLeft(this Envelope self)
{
   return new Coordinate(self.MinX, self.MaxY);
}
 public static Coordinate BottomRight(this Envelope self)
        {
            return new Coordinate(self.MaxX, self.MinY);
        }

转换后,它将在方法中引发如下异常: 例如:{“点必须形成闭合的线串”}

public void SpatialFilterAction(int userId, IEnumerable<SearchFilter> filters, IEnvelope envelope, Action<SurveyFeature> action)
        {
            using (var session = Session.SessionFactory.OpenStatelessSession())
            {
                session.CreateCriteria<SurveyFeature>("sf")
                    .AddFilterSubQuery(userId, filters)
                    .Add(SpatialRestrictions.Filter("sf.Location", envelope, 0))
                    .List(new ActionableList<SurveyFeature>(action));
            }
        }

这就是调用上述方法的地方:

 _featureRepository.SpatialFilterAction(User.Id(), AdvancedSearch.GetFilters(), filterGeo, feature =>
                                {
                                    feature.Geometry = feature.Location.Project(transformer.TransformAllRight);
                                    featureCollection.Add(feature.ToWFSFeature());
                                    featureCount++;
                                    pointCollection.Add(feature.Location);
                                });

但是当我像下面这样缩小地图时,其命中方法相同: ZoomedOutView

它将加载绿点。转换效果也很好。

请帮助我找出转换在左上角和右下角发生了什么,以及为什么该转换适用于zoomedout视图并加载点,以及为什么它不适用于页面加载后的初始视图(即地图特定部分的放大视图。

View when map loads in a page initially

0 个答案:

没有答案