Я создаю веб-сайт для внеклассных исследований. На веб-сайте будет размещаться карта с помощью API Google, которая будет отслеживать дороги, которые в конечном итоге будут реагировать на условия, которые мы ей предоставляем (например, на погоду). Прямо сейчас у нас есть данные в виде координат, которые следуют за автомагистралями между штатами. В конце концов они придут из внешнего файла. До сих пор я боролся со снимками Google Maps и полилинией Google Maps. Я учу себя HTML и Javascript для этого проекта, поэтому я все еще довольно неопытен в дизайне HTML (голова против тела, как загружаются браузеры и т. Д.).
Прямо сейчас мои данные проходят через MVCArray и строят ломаную линию для каждой пары широта / долгота.
Я пытаюсь установить условие, чтобы полилинии меняли цвет для каждой итерации цикла for, поэтому, когда i = 0, это красный, i = 1 это синий, i = 2 это красный, i = 3 снова синий , так далее.
Я попытался сделать цвет = {вставить условия}, а затем загрузить новую полилинию карт Google (... strokeColor: color ...), но при этом получается линия, которая окрашивает каждый сегмент в соответствии с полученным последним цветом.
В настоящее время я пытаюсь установить setOptions ({strokeColor: 'red'}), но он дает те же результаты. Это мое тело, кроме моего ключа API.
//head sets up dimensions
<body>
<div id="map" style="border: 5px solid #3872ac;"></div>
<script>
function initMap() {
var mapOptions = {
zoom: 14,
center: {lat: 40.753113, lng: -111.911168},
mapTypeId: 'roadmap'
};
var map = new google.maps.Map(document.getElementById('map'), mapOptions);
var latlon = [ // I- 80 // Utah
-111.911168,40.753113,-111.911257,40.753266,-111.911375,40.75355,-111.911591,40.754278,-111.911853,40.754915,-111.912289,40.755729,-111.91252,40.756102,-111.912942,40.756701,-111.91323,40.75704,-111.913361,40.757192,-111.913391,40.757235,
-111.913681,40.757575,-111.914291,40.758262,-111.914353,40.758332,-111.914695,40.758879,-111.914975,40.759496,-111.915098,40.760107,-111.91519,40.760638,-111.915209,40.760742,-111.915213,40.760767,-111.915219,40.760802,-111.91524,40.760921,
-111.915248,40.761013,-111.915358,40.762147,-111.915365,40.762211,-111.915494,40.762791,-111.915624,40.763096,-111.915783,40.763336,-111.915933,40.76351,-111.916149,40.763722,-111.916829,40.764097,-111.917077,40.764218,-111.91712,40.764229,
-111.917952,40.764442,-111.918057,40.764442,-111.918379,40.764444,-111.919688,40.764451,-111.921605,40.764458,-111.922163,40.764462,-111.922663,40.764466,-111.922708,40.764466,-111.923862,40.764479,-111.924058,40.764486,-111.926219,40.764511,
-111.92649,40.764523,-111.926693,40.764526,-111.927059,40.764543,-111.927648,40.764572,-111.928067,40.764604,-111.928733,40.764686,-111.929495,40.764804,-111.929867,40.764867,-111.930232,40.764919,-111.932428,40.765252,-111.93275,40.765312,
-111.932953,40.765344,-111.934726,40.765655,-111.93537,40.765737,-111.93543,40.765747,-111.93609,40.765852,-111.937173,40.766008,-111.937251,40.766013,-111.938261,40.76608,-111.939033,40.766103,-111.939189,40.766106,-111.939396,40.766112,
-111.941011,40.765989,-111.941242,40.765975,-111.943228,40.765859,-111.944735,40.76577,-111.946527,40.765674,-111.947385,40.765616,-111.947843,40.765584,-111.948898,40.765512,-111.94932,40.765483,-111.949554,40.765467,-111.94959,40.765465,
-111.950388,40.765411,-111.950697,40.76539,-111.951142,40.76536,-111.951922,40.765307,-111.952021,40.7653,-111.953592,40.765193,-111.953675,40.765187,-111.955595,40.765067,-111.957048,40.764975,-111.958936,40.764886,-111.960277,40.764823,
-111.964906,40.764601,-111.965931,40.764552,-111.967386,40.764445,-111.96899,40.764407,-111.969064,40.764401,-111.971108,40.764375,-111.972276,40.764409,-111.972641,40.764417,-111.972962,40.764422,-111.975158,40.764394,-111.975483,40.764393,
-111.975849,40.764401,-111.977142,40.764401,-111.978256,40.764393,-111.981672,40.764415,-111.984436,40.764394,-111.986532,40.764378,-111.987022,40.764403,-111.988707,40.764474,-111.991069,40.7648,-111.992537,40.765117,-111.993944,40.765491,
-111.995156,40.765881,-111.996124,40.766225,-111.996877,40.766557,-111.998172,40.767135,-111.998738,40.767387,
];
var coords = new google.maps.MVCArray;
for (var i = 0; i < latlon.length; i += 2) {
coords.push(new google.maps.LatLng(latlon[i+1],latlon[i]));
var n = i/2;
var newLine = new google.maps.Polyline({
path: coords,
geodesic: true,
//strokeColor: color,
strokeOpacity: 1.0,
strokeWeight: 5
});
if (i === 1) {
newLine.setOptions({
strokeColor: '#8E44AD' //purple
});
//alert("first condition");
} else if (i === 0) {
newLine.setOptions({
strokeColor: '#2980B9' //blue
});
//alert("second condition");
} else {
newLine.setOptions({
strokeColor: '#C0392B' //red
});
}
newLine.setMap(map);
}}//close for loop//close function
</script>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=************&callback=initMap">
</script>
</body>
Я всегда получаю одну цветную линию.
Как я могу сделать это дать цвета, которые переключаются для каждого раздела цикла for? Я предполагаю, что у меня настроена эта карта для рисования полилиний в конце загрузки html, поэтому она сохраняет последний полученный цвет в качестве цвета для всех точек, которые он хранит.
Любые комментарии по настройке html head / body также были бы очень благодарны, потому что до сих пор я только когда-либо делал эту функцию initMap работающей, когда все внутри нее.
Заранее спасибо.