- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - phát hiện rò rỉ bộ nhớ Ruby/Ruby on Rails
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我目前正在构建一个 flutter 应用程序,我想在其中计算某些对象之间的距离,并使用 Google Distance Matrix API 来执行此操作。我在使用 Dart 解析 json 时遇到问题。我最终想要的只是一个与 json 结果的距离列表,以便我可以对它们进行索引并将它们应用于我的应用程序中的数据。
json 结果如下所示:
{
"destination_addresses" : [
"destination address",
"destination address"
],
"origin_addresses" : [ "Origin addresses here" ],
"rows" : [
{
"elements" : [
{
"distance" : {
"text" : "4.3 mi",
"value" : 6998
},
"duration" : {
"text" : "14 mins",
"value" : 848
},
"status" : "OK"
},
{
"distance" : {
"text" : "6.7 mi",
"value" : 10728
},
"duration" : {
"text" : "22 mins",
"value" : 1327
},
"status" : "OK"
}
]
}
],
"status" : "OK"
}
我最终想得到一个列表(在 dart 中),它只是元素数组中距离“文本”值的列表,但我无法让它返回。我已经尝试创建一个类并将 json 结果映射到这个但是没有成功,因为我不是很擅长解析 json,所以任何关于如何结束这个列表的建议都将不胜感激!
我试过这段代码来解析 json,但我真的很难让它工作然后应用它:
class Topleveladd {
final String elements;
Topleveladd({this.elements});
factory Topleveladd.fromJson(Map parsedJson) {
return Topleveladd(elements: parsedJson['rows']);
}
}
class Elements {
List distanceslist;
Elements({this.distanceslist});
factory Elements.fromJson(Map parsedJson) {
var list = parsedJson['elements'] as List;
print(list.runtimeType); //returns List
List distancesList =
list.map((i) => Distance.fromJson(i)).toList();
return Elements(distanceslist: distancesList);
}
}
class Distance {
String text;
Distance({this.text});
factory Distance.fromJson(Map parsedJson) {
return new Distance(
text: parsedJson['distance'],
);
}
}
câu trả lời hay nhất
好的,这就是我访问您作为 Assets 提供的 JSON 的工作,因此您可能必须更改 loadData
方法才能满足您的需求。
距离矩阵类:
import 'dart:convert';
import 'dart:async' show Future;
import 'package:flutter/services.dart' show rootBundle;
class DistanceMatrix {
final List destinations;
final List origins;
final List elements;
final String status;
DistanceMatrix({this.destinations, this.origins, this.elements, this.status});
factory DistanceMatrix.fromJson(Map json) {
var destinationsJson = json['destination_addresses'];
var originsJson = json['origin_addresses'];
var rowsJson = json['rows'][0]['elements'] as List;
return DistanceMatrix(
destinations: destinationsJson.cast(),
origins: originsJson.cast(),
elements: rowsJson.map((i) => new Element.fromJson(i)).toList(),
status: json['status']);
}
static Future loadData() async {
DistanceMatrix distanceMatrix;
thử{
String jsonData = await rootBundle.loadString('assets/data.json');
distanceMatrix = new DistanceMatrix.fromJson(json.decode(jsonData));
} catch (e){
in(e);
}
return distanceMatrix;
}
}
class Element {
final Distance distance;
final Duration duration;
final String status;
Element({this.distance, this.duration, this.status});
factory Element.fromJson(Map json) {
return Element(
distance: new Distance.fromJson(json['distance']),
duration: new Duration.fromJson(json['duration']),
status: json['status']);
}
}
class Distance {
final String text;
final int value;
Distance({this.text, this.value});
factory Distance.fromJson(Map json) {
return new Distance(text: json['text'], value: json['value']);
}
}
class Duration {
final String text;
final int value;
Duration({this.text, this.value});
factory Duration.fromJson(Map json) {
return new Duration(text: json['text'], value: json['value']);
}
}
Main.dart 使用 ListView.builder
将距离文本和值显示为 ListTile
:
nhập 'gói:flutter/material.dart';
import 'package:hello_world/distance_matrix.dart';
void main() async {
runApp(new MyApp(
distanceMatrix: await DistanceMatrix.loadData(),
));
}
class MyApp extends StatefulWidget {
final DistanceMatrix distanceMatrix;
@ghi đè
_MyAppState createState() => new _MyAppState();
MyApp({this.distanceMatrix});
}
class _MyAppState extends State {
@ghi đè
Xây dựng tiện ích (BuildContext context) {
trả về MaterialApp(
Trang chủ: Giàn giáo(
appBar: Thanh ứng dụng(
title: Text("Home"),
),
body: Material(
child: ListView.builder(
itemCount: widget.distanceMatrix.elements.length,
itemBuilder: (context, index){
trả về ListTile(
title: Text(widget.distanceMatrix.elements[index].distance.text),
subtitle: Text(widget.distanceMatrix.elements[index].distance.value.toString()),
);
},
)
)));
}
}
图像显示你应该得到什么:
关于json - Flutter与Distance Matrix API解析json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53485071/
Như hiện tại, câu hỏi này không phù hợp với định dạng Hỏi & Đáp của chúng tôi. Chúng tôi mong đợi câu trả lời sẽ được hỗ trợ bởi các sự kiện, trích dẫn hoặc chuyên môn, nhưng câu hỏi có thể gây ra tranh luận, tranh luận, bỏ phiếu hoặc thảo luận mở rộng. Nếu bạn cảm thấy vấn đề này có thể được cải thiện và có thể mở lại, hãy truy cập
我已经检查了问题、源代码和其他示例,但我终究无法理解 Distance d = Distance() 是什么。参数在函数中的意思 template int flann::hierarchicalClu
从 GeoDjango Point Field,我得到以下几点: object1.point = "POINT(-113.4741271000000040 53.4235217000000020)"
这是在与@Nargiza 解决此问题的过程中出现的意外行为:3d distance calculations with GeoDjango . 遵循 Distance 上的 Django 文档函数:
我在 C++ 中实现了 Damerau–Levenshtein 距离,但它没有为输入(pantera,主动脉)提供正确的 o/p,正确的 o/p 是 4,但我的代码给出了 5...... int e
嘿,各位极客们! 我对 Web 3.0 有一个革命性的想法,呵呵。我将创建一个像 jQuery-UI 一样的 SVG-UI-lib。为了使某些功能成为可能,我需要 fork /贡献 d3.js。IE。
我有一个列表,其中包含具有 3D 名称和坐标的点列表。类似这样的列表长度要长得多: group=[[gr1, 5, 8, 9], [gr2, 7, 4, 5], [gr3, 3, 8, 1], [gr
我是 OOP 的新手,我在这个任务中一直遇到这个错误。或许你能帮帮我。 这是类头文件: class Distance : public Magnitude { private: double
Django——地质学 我正在寻找如何定义两点之间的距离。第一个与帖子本身有关,不会因每个帖子而改变。它表示帖子的位置。第二个将与用户的位置相关联。 我想计算发布和用户的距离。 问题:假设我已连接:每
当使用短语运算符( )语法进行全文搜索时,它并没有像我期望的那样“小于或等于”数字。搜索值必须正好位于那么多位置之外。 给出这个例子: select * from (values ('bob i
假设我有两个由纬度和经度表示的位置。 位置1:37.5613 , 126.978地点 2 : 37.5776 , 126.973 如何使用曼哈顿距离计算距离? 编辑:我知道计算曼哈顿距离的公式,如 E
我有两个我知道纬度和经度的点。 我如何计算它们之间的距离(以公里和英里为单位)。公式是什么? 最佳答案 您可以使用 haversine formula来计算这样的距离。 关于distance - 以公
我搜索了 A* 的算法/伪代码,然后对其进行了编码。我使用曼哈顿距离作为 h(n)。 ( f(n) = g(n) + h(n) ) 这就是结果, 当没有墙挡路时总是会发生这种情况,但是当我放置很多墙时
我正在寻找一种数据结构来处理包含 512 个二进制值的数十亿个二进制字符串。 我的目标是向结构发送查询并获得一个结果集,其中包含距离更短的所有数据。 我的第一个想法是使用 kd 树。但是这些树对于高维
无线测量相距几米的两个物体(计算机、智能手机或专用设备)之间的距离的最佳方法是什么,精确到约 10 厘米? 这是否可以通过在 WLAN、蓝牙或 GPS 上小 pig 乞求来实现? 最佳答案 Ekaha
给定一个四元数值,我想在一组四元数中找到它的最近邻居。为此,我显然需要一种方法来比较两个四元数之间的“距离”。这种比较需要什么距离表示以及如何计算? 谢谢 乔什 最佳答案 这是一个老问题,但似乎需要更
我们如何测量分类数据之间的相似度距离? 示例:性别:男、女数值:[0 - 100]、[200 - 300]弦乐:专业人士、初学者等... 提前致谢。 最佳答案 有不同的方法可以做到这一点。最简单的一种
我正在开发一种工具来查找给定纬度和经度的两点之间的距离。当纬度和经度在 中给出时就可以了签名学位格式 .但是当在 中给出纬度和经度时,我找不到计算距离的方法。度分秒格式 (例如:N 11° 14' 5
编辑距离查找一个字符串到另一个字符串所需的插入、删除或替换次数。我还想在这个算法中包含掉期。例如“apple”和“appel”应该给出1的编辑距离。 最佳答案 您定义的编辑距离称为 Damerau-L
我实现了一个 levenshtein trie 来查找与给定单词相似的单词。 我的目标是有一种快速的方法来进行拼写纠正。 但是我发现有一种更快的方法可以做到这一点: 莱文斯坦自动机 我只是有一个问题.
Tôi là một lập trình viên xuất sắc, rất giỏi!