我正在尝试让Excel返回地址,邮政编码等之间的行车距离。我已经使用Google API设置了一切,但我根本不熟悉VBA,所以我不是确定这段代码有什么问题。
每当2点之间的距离大于999英里时,代码将仅返回第一个数字。因此,如果它是1,284英里,它只返回1.如果它是2,817英里,它只返回2,依此类推。如果有人能看到它并告诉我我错过了什么,或者我做错了什么,那么我正在运行的代码就在下面。
就这样我尽可能透明,我自己也没有写任何这些。我从一个名为analystcave.com的网站上得到了它,之前我已经在那里发布了这个问题,而我收到的唯一回复并没有解决问题。我再次发布,但我认为StackOverflow是一个更好的地方找到正确的答案,而且更快。
提前感谢您的帮助!
Seq Scan on entities (cost=16.88..4776.15 rows=80414 width=163) (actual time=15.169..15.169 rows=0 loops=1)
Filter: ((hashed SubPlan 1) OR (hashed SubPlan 2))
Rows Removed by Filter: 107218
SubPlan 1
-> Index Scan using index_users_email_key_idx1 on index_users_email (cost=0.42..8.44 rows=1 width=33) (actual time=0.039..0.039 rows=0 loops=1)
Index Cond: ((key)::text = 'test'::text)
SubPlan 2
-> Index Scan using index_users_profile_name_key_idx1 on index_users_profile_name (cost=0.42..8.44 rows=1 width=33) (actual time=0.071..0.071 rows=0 loops=1)
Index Cond: ((key)::text = 'test'::text)
Planning time: 0.202 ms
Execution time: 15.216 ms
答案 0 :(得分:0)
如果您查看请求返回的内容(使用输入“洛杉矶,CA 90001”,“纽约,纽约10001”),问题就相当明显了:
"elements" : [
{
"distance" : {
"text" : "2 796 mil",
"value" : 4499875
},
"duration" : {
"text" : "1 dzien 16 godz.",
"value" : 144859
},
"status" : "OK"
}
]
请注意,您在此处请求具有波兰语本地化的文本(语言= pl ):
lastVal = "&mode=car&language=pl&units=imperial&sensor=false"
这是使用千位分隔符的空格本地化距离文本。请注意,“值”不已本地化(并以米为单位) - 当给定language=en
本地化时,它会给出此值units=metric
:
"elements" : [
{
"distance" : {
"text" : "4,500 km",
"value" : 4499875
},
"duration" : {
"text" : "1 day 16 hours",
"value" : 144859
},
"status" : "OK"
}
]
快速解决方法是将注释中提到的正则表达式模式更改为...
regex.Pattern = """text"".*?([0-9,]+)"
...以及请求:
lastVal = "&mode=car&language=en&units=imperial&sensor=false"
虽然我实际上建议拉出非本地化的“值”而不是本地化的“文本”,然后如果需要英制单位则转换为英里。