我有一个Google地图页面,可以根据一堆坐标绘制各种折线。它们都通过一个大的圆形折线连接两个点。所有线条都有相同的颜色。这些行是网络上的路由
我现在想要用褪色的折线来表示路线的盈利能力,为盈利路线显示绿色,为亏损路线显示红色。由于每条折线都有两种可能的盈利能力(来自两个起点),颜色应逐渐淡化为另一种颜色。
我认为,我可以将折线分成两条,只显示每条线的一半,但颜色不会逐渐淡入另一条。
有办法吗?
目前我正在创建如下行:
var routes = [['CJU', 'SZX', 33.5112991333, 126.49299621582, 22.6392993927, 113.81099700928, 1, 7, 3163768],
['CJU', 'PEK', 33.5112991333, 126.49299621582, 40.08010101318, 116.58499908447, 0.5, 4, 3163766],
['CJU', 'PVG', 33.5112991333, 126.49299621582, 31.14340019226, 121.80500030518, 0.5, 4, 3163767],
['CJU', 'WUH', 33.5112991333, 126.49299621582, 30.78380012512, 114.20800018311, 0.5, 4, 3163769],];
function setRoutes(map, flights) {
for (var j = 0; j < flights.length; j++) {
var route = flights[j];
var infowindow = new google.maps.InfoWindow({ content: 'From '+route[0]+' to '+route[1]+' ', position: new google.maps.LatLng(route[4], route[5]) });
var flt = new google.maps.Polyline({path: [new google.maps.LatLng(route[2], route[3]), new google.maps.LatLng(route[4], route[5])], strokeColor: "#FF0000", strokeOpacity: route[6], strokeWeight: route[7], geodesic: true, url: 'http://domain.com/page.asp?F='+route[8] });
flt.setMap(map);
google.maps.event.addListener(flt, 'click', function() { NewWindow(this.url,'name','770','490','Yes');return false; });
var apt = new google.maps.MarkerImage('http://domain.com/marker/dot.png', null, null, new google.maps.Point(8,14), new google.maps.Size(20,20));
var dep = new google.maps.LatLng(route[2], route[3]);
var marker = new google.maps.Marker({position: dep, map: map, icon: apt, title: route[0]});
var arr = new google.maps.LatLng(route[4], route[5]);
var marker = new google.maps.Marker({position: arr, map: map, icon: apt, title: route[1]});
}
}
setRoutes(map, routes);
这很好用,但我不确定如何让颜色逐渐从color1渐变到color2。
提前致谢。
答案 0 :(得分:1)
谷歌地图文档没有任何淡化颜色的选项。 它们看起来是固定的,但是可以进行一些自定义,但是不支持从一种颜色渐变到另一种颜色。
答案 1 :(得分:0)
尝试以RGBA模式提供颜色。
我的意思是代替在十六进制模式下给出颜色,例如#FF0000,你可以在RGBA模式下使用它等效,例如rgba(255,0,0,1)。
要在RGBA模式下淡化颜色,请更改最后一位数的值并将其保持在0(透明)和1(可见)之间。
您可以使用此link将十六进制颜色转换为RGBA。