【问题标题】:openlayers create marker (feature with icon) from WKTopenlayers 从 WKT 创建标记(带有图标的功能)
【发布时间】:2013-07-03 19:46:46
【问题描述】:

我有一个点对象 WKT。像这样:POINT (25.04568 48.221548)。我的项目文件夹中还有一个图标。

我的目标是在地图上显示一个代表功能的图标。它可以只是一个普通的 OpenLayers 功能(如果是,那么我如何定义它应该代表和图标)还是我需要创建一个 OpenLayers 标记(以某种方式从 WKT 创建 LonLat)?

【问题讨论】:

    标签: javascript openlayers point markers wkt


    【解决方案1】:

    如果你明白的话,添加一个图标是相当容易的。

    只需查看此页面的 javascript 源代码: OpenLayers example markers page

    OpenLayers examples page

    要记住的重要部分是,如果您使用图标,如果您需要多次显示,则必须在其上使用 .clone()。 上面例子中的代码 sn-p:

    "...
    var markers = new OpenLayers.Layer.Markers( "Markers" );
    map.addLayer(markers);
    
    var size = new OpenLayers.Size(21,25);
    var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
    var icon = new OpenLayers.Icon('http://www.openlayers.org/dev/img/marker.png',size,offset);
    markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(0,0),icon));
    
    var halfIcon = icon.clone();
    markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(0,45),halfIcon));
    
    marker = new OpenLayers.Marker(new OpenLayers.LonLat(90,10),icon.clone());
    ..."
    

    在你的点对象上是这样的:

    point.transform(
        new OpenLayers.Projection("EPSG:900913"), //from
        map.getProjectionObject()  //to
       );
    

    当然,您需要知道您的点投影是什么。 那里有很多例子。

    Projections and OpenLayers.Geometry.Point in openlayers

    Spherical Mercator - OpenLayers Library Documentation

    【讨论】:

    • 好的,但我没有 LonLat,只有 WKT。如何创建 LonLat?
    • 好吧,您可能需要将点从一个投影转换到另一个投影,然后使用 var point.x 和 point.y 作为 lonlat。
    猜你喜欢
    • 1970-01-01
    • 2022-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-26
    • 1970-01-01
    相关资源
    最近更新 更多