我使用python库“request”发出WFS请求。其中一个参数是一个边界框,其坐标由4个变量给出。问题是最终url在bbox坐标周围有一些附加字符,导致错误的请求。你知道这些角色是怎么出现的,怎么摆脱它们吗
示例坐标:
(136226.446, 456092.217, 136726.446, 456592.217)
我的代码:
coords= (bbx_min_x, bbx_min_y, bbx_max_x, bbx_max_y)
url = 'https://geodata.nationaalgeoregister.nl/bag/wfs/v1_1?'
params = {'bbox' : '{}'.format(coords), 'service' : 'WFS' , 'typeName' : 'bag:pand' , 'version' : '2.0.0' , 'startIndex' : 0, 'request' : 'GetFeature', 'outputFormat' : 'json'}
exp = Request('GET', url, params=params).prepare().url
结果url(来自print(exp)
):
https://geodata.nationaalgeoregister.nl/bag/wfs/v1_1?bbox=%28136226.446%2C+456092.217%2C+136726.446%2C+456592.217%29&service=WFS&typeName=bag%3Apand&version=2.0.0&startIndex=0&request=GetFeature&outputFormat=json
我找到了解决办法。为了理解这个问题,我需要找出URL编码(参见here)。 在我的代码中,bbox坐标被解析为一个元组
在url编码中,尽管使用字符%28对开括号进行编码,但将边界框的下X坐标从
136226.446
更改为28136226.446
。这导致边界框错误为了解决这个问题,我分别给出了每个坐标:
相关问题 更多 >
编程相关推荐