如何在openlayers中加载json数据?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在openlayers中加载json数据?相关的知识,希望对你有一定的参考价值。

请教各位技术帝,图片里点的内容想转换成json文件,然后赋值给 geojsonObjectPoint,怎么写呢?

参考技术A

    获取GeoJSON数据,可以通过http请求获取,也可以自己定义json数据。
    注意格式

    var geojsonObject =        'type': 'FeatureCollection',        'crs':          'type': 'name',          'properties':            'name': 'EPSG:3857'
             
           ,        'features': [          'type': 'Feature',          'geometry':            'type': 'Point',            'coordinates': [0, 0]
             
           ,          'type': 'Feature',          'geometry':            'type': 'LineString',            'coordinates': [[4e6, -2e6], [8e6, 2e6]]
             
           ,          'type': 'Feature',          'geometry':            'type': 'LineString',            'coordinates': [[4e6, 2e6], [8e6, -2e6]]
             
           ,          'type': 'Feature',          'geometry':            'type': 'Polygon',            'coordinates': [[[-5e6, -1e6], [-4e6, 1e6], [-3e6, -1e6]]]
             
           ,          'type': 'Feature',          'geometry':            'type': 'MultiLineString',            'coordinates': [              [[-1e6, -7.5e5], [-1e6, 7.5e5]],              [[1e6, -7.5e5], [1e6, 7.5e5]],              [[-7.5e5, -1e6], [7.5e5, -1e6]],              [[-7.5e5, 1e6], [7.5e5, 1e6]]
               ]
             
           ,          'type': 'Feature',          'geometry':            'type': 'MultiPolygon',            'coordinates': [              [[[-5e6, 6e6], [-5e6, 8e6], [-3e6, 8e6], [-3e6, 6e6]]],              [[[-2e6, 6e6], [-2e6, 8e6], [0, 8e6], [0, 6e6]]],              [[[1e6, 6e6], [1e6, 8e6], [3e6, 8e6], [3e6, 6e6]]]
               ]
             
           ,          'type': 'Feature',          'geometry':            'type': 'GeometryCollection',            'geometries': [              'type': 'LineString',              'coordinates': [[-5e6, -5e6], [0, -5e6]]
               ,              'type': 'Point',              'coordinates': [4e6, -5e6]
               ,              'type': 'Polygon',              'coordinates': [[[1e6, -6e6], [2e6, -4e6], [3e6, -6e6]]]
               ]
             
           ]
         ;

    创建矢量图层Source

    var vectorSource = new ol.source.Vector(
           features: (new ol.format.GeoJSON()).readFeatures(geojsonObject)
         );

    创建图层并绑定Source

    var vectorLayer = new ol.layer.Vector(
           source: vectorSource,
           style: ''
         );

    添加到map中即可

如何在 Flutter Mobile App 中加载和查询本地 json 数据

【中文标题】如何在 Flutter Mobile App 中加载和查询本地 json 数据【英文标题】:How can I to load and query local json data in Flutter Mobile App 【发布时间】:2018-12-23 22:07:41 【问题描述】:

这是我的 key:value 配对的本地 json。我需要加载,稍后我需要用于查询。 那么,呢?


  "currency.01": "United State USD",
  "currency.17": "British Pound GBP",
  "currency.33": "Euro EUR",

【问题讨论】:

你可以使用pub.dartlang.org/packages/shared_preferences 【参考方案1】:

将您的 JSON 文件添加到 pubspec.yaml

  assets:
    - assets/config.json

然后你可以使用rootBundle来加载它

import 'dart:async' show Future;
import 'package:flutter/services.dart' show rootBundle;

Future<String> loadAsset() async 
  return await rootBundle.loadString('assets/config.json');

也看看这个full example 并用于查询将您的 JSON 数据转换为 LIST,然后您有很多搜索方法,例如 where 方法

【讨论】:

我的值为“01”,所以我也需要进行查询。我需要更改我的 json 数据,或者如果您知道如何使用现有数据进行查询,我将不胜感激。 谢谢@Raouf,我会测试一下。 谢谢!对我帮助很大。【参考方案2】:

rootBundle 通常只是答案的一部分。我也会做 jsonDecode 来返回一个实际的 json 格式。

import 'dart:convert';
import 'package:flutter/services.dart';

Future<String> loadAsset() async 
  return jsonDecode(await rootBundle.loadString('assets/config.json'));

然后在您的主服务器上,您现在可以将其加载到 List&lt;dynamic&gt; 以获取列表格式的 json 对象。

List<dynamic> response;
response = loadAsset();

然后您现在可以从这里访问您的值,

print(response['currency.01']);

输出:美国美元

【讨论】:

以上是关于如何在openlayers中加载json数据?的主要内容,如果未能解决你的问题,请参考以下文章

OpenLayers自定义投影,转换OpenLayers中加载的OSM的默认投影坐标

OpenLayers 3 - Bing 地图不会在 Windows 应用程序中加载

如何在 Flutter Mobile App 中加载和查询本地 json 数据

如何使用 sql 查询以行存储模式在 snappydata 表中加载 JSON 数据?

如何在Objective-C中加载数据期间异步加载JSON数据并填充UITableView

如何使用 JSON API 在滚动时在 recyclerview 中加载更多数据