从 MVC 加载 WKT 多边形以供 OpenLayers 渲染

Load WKT polygons from MVC for OpenLayers to render

OL3 和 MVC5。我有一个 mvc 控制器,returns wkt 来自 oracle 的多边形字符串。我想在开放层中渲染这些,但我找不到让 ol 开心的格式。

   var tAVectorSource = new ol.source.Vector({
    format: new ol.format.WKT(),
    url: function (extent) {
        return '/MyController/Map/MyWKTPolygons';
    },
    strategy: ol.loadingstrategy.bbox
});

var tAVectors = new ol.layer.Vector({
    source: tAreaVectorSource,
    style: tAStyle
});

我的控制器返回这个:

{"TAId":4,"PId":21,"TType":1,"TShape":"POLYGON ((-1.2695884640625E7 4445506.375, -1.21430920625E7 4451637.25, -1.2152876E7 5012485.703125, -1.2373014640625E7 5006005.84375, -1.2373014640625E7 5162735.015625, -1.2695884640625E7 5156153.28125, -1.2695884640625E7 4445506.375))","TAcres":0}

现在我得到

Unexpected character: {

在此之前,我正在测试返回几个功能,意外字符是定义列表的 [ 大括号。 OL 喜欢什么?我在哪里可以找到满足它的规范或示例?

您的控制器正在 returning JSON,其中包含一个 WKT 字符串作为属性。使用 ol.format.WKT 时,您的控制器应仅 return WKT 字符串 (POLYGON (...)).

如果您也对获取要素的属性感兴趣,则可能需要使用 GeoJSON。