【问题标题】:gwt-openlayers - display a routegwt-openlayers - 显示路线
【发布时间】:2012-03-08 11:19:15
【问题描述】:

我使用gwt-openlayers
我还没有找到如何显示路线。

可以用gwt-openlayers显示路线吗?

【问题讨论】:

    标签: java javascript gwt openstreetmap gwt-openlayers


    【解决方案1】:

    我设法显示了路线:

    KML:KML 坐标为字符串 6.646280,49.753730,0.000000 6.646020,49.753230,0.000000 6.645650,49.752700,0.000000 ... 在这种情况下。

    Vector routeLayer = new Vector("route");
    
    List<Point> pointList = new ArrayList<Point>();
    Projection defaultProj = new Projection(DEFAULT_PROJECTION); 
      // DEFAULT_PROJECTION = "EPSG:4326"
    Projection mapProj = new Projection(mapWidget.getMap().getProjection());
    for (String coord : KML.split(" "))
    {
      String[] xyz = coord.split(",");
      if (xyz.length == 3)
      {
        Point point = new Point(Double.parseDouble(xyz[0]), Double.parseDouble(xyz[1]));
          // lon,lat 
        point.transform(defaultProj, mapProj);
        pointList.add(point);
      }
    }
    LineString geometry = new LineString(pointList.toArray(new Point[pointList.size()]));
    Style style = new Style();
    style.setStrokeColor("#0033ff");
    style.setStrokeWidth(5);
    
    routeLayer.addFeature(new VectorFeature(geometry, style));
    
    mapWidget.getMap().addLayer(routeLayer);
    

    【讨论】:

      【解决方案2】:

      取决于您的路线格式,但如果您有 KML,请使用 GML 层。

      【讨论】:

      • 谢谢,您可以为我提供更多信息吗?当 url 返回 kml 时,maps.addLayer(new GML("route", url) 会工作吗?我使用带有投影 EPSG:900913 的 osm。我的 url 在投影 EPSG:4326 中返回 kml,但它不起作用。是否可能转换 kml 或者您知道返回投影 EPSG:900913 的 kml 提供程序
      • GWT 包装器尚未涵盖所有开放层。所以最好的办法是先了解如何在 openlayer JavaSCript 中创建层。如果您还不知道如何操作,请从 openlayers 示例开始:openlayers.org/dev/examples。接下来使用 GWT 构建它,并注意 openlayer 属性和参数位于 GWT 包装器中它们自己的类中,例如 GMLProperties 类。如果特定属性没有命名方法,可以使用泛型方法setProperty,将属性名称作为第一个参数。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-04
      相关资源
      最近更新 更多