我正在尝试使用 OSM maptiles 在地图上(在城市中)显示我的纬度和经度。我正在使用wxpython开发桌面应用程序。而且应该是离线的。
当我合并下载的maptiles并尝试使用plt.imread
进行大图像绘制时,它运行缓慢。这就是为什么我分别决定imread
的原因。根据我的经度和纬度,应绘制必要的瓦片。并非全部合而为一。我不知道我是否认为合理。我有任何想法。谢谢
在下面,我在绘图时读取了8张图像(2行和4列)。对于一个城市,我有1200张图像。 我该如何克服?
def map_f( self, event ):
obj = event.GetEventObject()
isPressed = obj.GetValue()
if isPressed:
#self.data(event)
lon = [29.137353666666664, 29.132254166666666, 29.137354333333336, 29.132249833333336, 29.1322545, 29.132264833333338, 29.13225483333333, 29.132259166666667, 29.132236499999998, 29.132220666666665, 29.13220816666667, 29.132194833333333, 29.132186833333336, 29.132178500000002, 29.132177000000002, 29.13217516666667, 29.132163999999996, 29.1321665, 29.132164666666668, 29.132159166666664, 29.132168333333333, 29.1321645, 29.132168, 29.132165, 29.132168499999995, 29.132172666666666, 29.132179333333337, 29.132177000000002, 29.132174166666665, 29.132171000000003, 29.132168499999995, 29.132159, 29.132144166666663, 29.132137333333336, 29.1321285, 29.13212716666667, 29.13212866666667, 29.132138666666666, 29.132124833333332, 29.132123833333335, 29.13213, 29.13212583333333, 29.136139999999996, 29.1361405, 29.136148833333336, 29.13612433333333, 29.136120666666665, 29.136115999999996, 29.136109500000002, 29.136109833333335, 29.136096166666663, 29.136098166666665, 29.136094833333333, 29.136079999999995, 29.136093499999996, 29.136101499999997, 29.136105833333338, 29.136094, 29.13607933333333, 29.136082333333333, 29.136061, 29.136051666666666, 29.136033, 29.136040500000002, 29.136018166666665, 29.136009999999998, 29.136002166666666, 29.136009, 29.13600583333333, 29.136020000000004, 29.136019500000002, 29.136010666666663, 29.136015833333337, 29.136037333333333, 29.136040833333335, 29.136057999999997, 29.13605966666667, 29.136045166666664, 29.136055999999995, 29.136069666666666, 29.136078499999995, 29.1360765, 29.136090666666667, 29.1360945, 29.136082666666665, 29.136084333333335, 29.1360835, 29.136104166666668, 29.136102499999995, 29.136098166666665, 29.13607183333333, 29.136065166666667, 29.136066000000002, 29.136057333333332, 29.136078, 29.136071166666666]
lat = [40.9786755, 40.978659666666664, 40.978660833333335, 40.97864633333334, 40.978662499999994, 40.985377666666665, 40.985373833333334, 40.985380666666664, 40.985360666666665, 40.985356499999995, 40.985353833333335, 40.985349, 40.985348, 40.98534566666667, 40.98534666666667, 40.98534299999999, 40.98534966666667, 40.98535316666666, 40.985345833333334, 40.98533883333334, 40.98533483333333, 40.985334333333334, 40.98533533333333, 40.98534566666667, 40.9853455, 40.9853455, 40.985352, 40.985357666666665, 40.98535833333334, 40.985369500000004, 40.98537216666667, 40.98537433333333, 40.98536983333334, 40.98535866666667, 40.98535866666667, 40.985368666666666, 40.985373833333334, 40.98538083333334, 40.9853835, 40.98539466666667, 40.98541083333334, 40.98539933333333, 40.9853975, 40.98540166666667, 40.98540633333334, 40.98541, 40.98541516666667, 40.9854215, 40.98542333333333, 40.985428166666665, 40.98543633333334, 40.98543183333334, 40.98542166666667, 40.98541516666667, 40.985423, 40.98542783333333, 40.9854245, 40.985417999999996, 40.98541916666667, 40.985407, 40.9853965, 40.985407499999994, 40.98540216666667, 40.985399666666666, 40.98540466666667, 40.9853995, 40.98540766666667, 40.9854005, 40.98538933333334, 40.985363, 40.98535483333333, 40.985349166666666, 40.985366500000005, 40.9853575, 40.98535433333333, 40.98534333333334, 40.985339999999994, 40.985331333333335, 40.98530866666667, 40.9853095, 40.98530366666667, 40.985318, 40.9853125, 40.97861233333333, 40.978625333333336, 40.97862433333333, 40.978624999999996, 40.985305833333335, 40.98529816666667, 40.98529966666667, 40.9853185, 40.98532433333333, 40.985327, 40.98533233333333, 40.98532116666667, 40.98530916666667]
for i in lon:
if 29.1303 < i <= 29.1333:
im = plt.imread('C:\\Users\\GCS-User\\Desktop\\13\\3071.jpg')
if 29.1333 < i < 29.1363:
im2 = plt.imread('C:\\Users\\GCS-User\\Desktop\\13\\3071 (2).jpg')
if 29.1363 < i < 29.1393:
im21 = plt.imread('C:\\Users\\GCS-User\\Desktop\\13\\3071 (3).jpg')
if 29.1363 < i < 29.1393:
im22 = plt.imread('C:\\Users\\GCS-User\\Desktop\\13\\3071 (4).jpg')
for j in lat:
if 40.9786 < j <= 40.9830:
im3 = plt.imread('C:\\Users\\GCS-User\\Desktop\\13\\3072.jpg')
if 40.9830 < j < 40.9874:
im4 = plt.imread('C:\\Users\\GCS-User\\Desktop\\13\\3072 (2).jpg')
if 40.9786 < j <= 40.9830:
im41 = plt.imread('C:\\Users\\GCS-User\\Desktop\\13\\3072 (3).jpg')
if 40.9786 < j <= 40.9830:
im42 = plt.imread('C:\\Users\\GCS-User\\Desktop\\13\\3072 (4).jpg')
implot = plt.imshow(im, extent=[29.1303,29.1333,40.9830,40.9860])
implot2 = plt.imshow(im2, extent=[29.1333,29.1363,40.9830,40.9860])
implot21 = plt.imshow(im21, extent=[29.1363,29.1393,40.9830,40.9860])
implot22 = plt.imshow(im22, extent=[29.1393,29.1423,40.9830,40.9860])
implot23 = plt.imshow(im23, extent=[29.1303,29.1333,40.9770,40.9800])
implot24 = plt.imshow(im24, extent=[29.1333,29.1363,40.9770,40.9800])
implot25 = plt.imshow(im25, extent=[29.1363,29.1393,40.9770,40.9800])
implot26 = plt.imshow(im26, extent=[29.1393,29.1423,40.9770,40.9800])
implot3 = plt.imshow(im3, extent=[29.1303,29.1333,40.9800,40.9830])
implot4 = plt.imshow(im4, extent=[29.1333,29.1363,40.9800,40.9830])
implot41 = plt.imshow(im41, extent=[29.1363,29.1393,40.9800,40.9830])
implot42 = plt.imshow(im42, extent=[29.1393,29.1423,40.9800,40.9830])
plt.scatter(lon,lat, s=10, c='r')
plt.grid(True, which='both', axis="both")
plt.show()
else:
plt.close()