在openlayer中使用geoJson制作矢量图层

发布于 2024-12-03 00:09:12 字数 843 浏览 1 评论 0原文

我曾经像这样制作 GML 矢量:

layer = new OpenLayers.Layer.GML("based",
        "./parser2.php",
        {
            isBaseLayer: true,
            format: OpenLayers.Format.GeoJSON,
            styleMap: new OpenLayers.StyleMap(mystyle),
            units:"m",
            maxResolution: 0.2,
            minResolution: 0.01
        })

map.addLayer(layer);

但现在已贬值,因为我需要使用 OpenLayers.Layer.Vector 但我无法成功读取 geoJon 文件。 我尝试过这样的:

   var test = new OpenLayers.Layer.Vector("test", {
    strategies: [new OpenLayers.Strategy.Fixed()],
    protocol: new OpenLayers.Protocol.HTTP({
        isBaseLayer: true,
        url: "data.json",
        styleMap: myStyles,
        format: new OpenLayers.Format.JSON()
        })
    });
map.addLayer(test);

但不幸的是它不起作用。

你有什么线索吗?

谢谢

I used to make GML vector like this:

layer = new OpenLayers.Layer.GML("based",
        "./parser2.php",
        {
            isBaseLayer: true,
            format: OpenLayers.Format.GeoJSON,
            styleMap: new OpenLayers.StyleMap(mystyle),
            units:"m",
            maxResolution: 0.2,
            minResolution: 0.01
        })

map.addLayer(layer);

but is now depreciated an for multiple raison i need to use OpenLayers.Layer.Vector but i can't succed to read a geoJon file.
I tried like this:

   var test = new OpenLayers.Layer.Vector("test", {
    strategies: [new OpenLayers.Strategy.Fixed()],
    protocol: new OpenLayers.Protocol.HTTP({
        isBaseLayer: true,
        url: "data.json",
        styleMap: myStyles,
        format: new OpenLayers.Format.JSON()
        })
    });
map.addLayer(test);

but unfortunately it's not working.

do you have any clue?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我家小可爱 2024-12-10 00:09:12

我使用以下网页中描述的步骤将 GeoJSON 格式数据添加到图层: http://thinkwhere.wordpress.com/2011/06/26/geocommons-geojson-in-openlayers/
由于您的 GeoJSON 格式已经正确,因此请勿在 GeoJSON 字符串周围添加 {"type": "FeatureCollection", "features": ...} ,如此示例所示。

用简单的英语来说,步骤是:

  1. 创建一个新的 OpenLayers.Layer.Vector 图层,不带读取数据的选项。
  2. 您自己阅读 URL。
  3. 在读取完成时调用的回调函数中,您创建一个 OpenLayers.Format.GeoJSON() 对象,使用它从 GeoJSON 字符串中读取要素,然后将要素添加到图层中。

I use the steps described in the following web page to add GeoJSON format data to a layer: http://thinkwhere.wordpress.com/2011/06/26/geocommons-geojson-in-openlayers/
As your GeoJSON is already correct format do not add {"type": "FeatureCollection", "features": ...} around the GeoJSON string, as shown in this example.

In plain English, the steps are:

  1. Create a new OpenLayers.Layer.Vector layer without options to read data.
  2. You read the URL yourself.
  3. In the callback function called when reading is complete you create a OpenLayers.Format.GeoJSON() object, use it to read features from the GeoJSON string, then add the features to the layer.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文