如何快速渲染多个 GMAP 折线



我有一些代码可以循环遍历一系列航空公司路线和机场,在每个机场放置标记并在它们之间绘制折线。当我有 400 条路由时,代码有效且很好。当我将其扩展到完整的~3500左右的路线时,它在渲染近一分钟时会停止。有什么方法可以加快速度吗?

map.fitBounds(bounds);
var flightPath;
var flightPlanCoordinates;
$.each(routes, function(key, route) {
flightPlanCoordinates = [];
flightPlanCoordinates.push( markers[route.origincode].position );
flightPlanCoordinates.push( markers[route.destinationcode].position );
flightPath = new google.maps.Polyline({
path: flightPlanCoordinates,
geodesic: true,
strokeColor: '#004494',
strokeOpacity: 0.2,
strokeWeight: 1
});
flightPath.setMap(map); //commenting this line speeds things back up
google.maps.event.addListener(flightPath, 'mouseover', function (event) {
this.setOptions({
strokeOpacity: 1,
strokeWeight: 2
});
});
google.maps.event.addListener(flightPath, 'mouseout', function (event) {
this.setOptions({
strokeOpacity: 0.2,
strokeWeight: 1
});
});
});

我建议您在MapsActivity开始之前请求并解码后台数据json方向。您还可以将解码 LatLng 存储在SharedPreferencd中(例如:1->(1.12,1.32(、2->(1.32、2.52((,使其成为流数据,而不是将所有日期存储在数组中,这将花费您许多资源并降低运行速度。最后,从SharedPreferenced中获取 LatLng 数据并让他们痛苦。

相关内容

  • 没有找到相关文章

最新更新