<p>这一点很棘手,在很多投影类型中,矩形并不是真正的矩形。所以当你说“矩形”时,你指的是地图空间中的实际矩形,还是仅仅是像素空间中的矩形?两者的要求截然不同</p>
<p>但是假设你想在地图空间里。最快的方法是只使用Basemap的<a href="http://matplotlib.org/basemap/api/basemap_api.html#mpl_toolkits.basemap.Basemap.plot" rel="nofollow">plot</a>方法,如下所示:</p>
<pre><code>def plot_rec(bmap, lower_left, upper_left, lower_right, upper_right):
xs = [lower_left[0], upper_left[0],
lower_right[0], upper_right[0],
lower_left[0], lower_right[0],
upper_left[0], upper_right[0]]
ys = [lower_left[1], upper_left[1],
lower_right[1], upper_right[1],
lower_left[1], lower_right[1],
upper_left[1], upper_right[1]]
bmap.plot(xs, ys, latlon = True)
</code></pre>
<p>其中<code>bmap</code>是您的地图,<code>lower_left</code>等是这些角上的lon-lat元组。在</p>
<p><strong>使用示例更新:</strong></p>
<p>您要求提供一个用法示例,因此您可以:</p>
^{pr2}$
<p>使用列表理解来生成正确的角点集绝对可以更优雅地完成这项工作,但这应该可以让您开始。在</p>
<p><strong>更新2</strong></p>
<p>所以这里似乎有些混乱。<code>plot_rec</code>是一个<a href="http://www.tutorialspoint.com/python/python_functions.htm" rel="nofollow">function</a>。它应该放在不与脚本其余部分内联的地方。它本身什么也做不了。当您<strong>调用</strong>此处时,它会:</p>
<pre><code>...
upper_left = (llcrnrlon, urcrnrlat)
upper_right= (urcrnrlon, urcrnrlat)
# This next line is where we call the function
plot_rec(m, lower_left, upper_left, lower_right, upper_right)
</code></pre>