Я передаю строку в скрытое поле на странице, а затем разбиваю ее, чтобы попытаться получить массив элементов, которые можно перебрать, и добавить несколько маркеров на карту Google. Если я жестко кодирую массив, он работает нормально, но если я пытаюсь разбить строку и использовать тот же код, он не работает. Я предполагаю, потому что разделение строки создает массив строк вместо объектов Array. Когда я разделяю строку, массив заканчивается на «['Smith Company', 33.61678, -111.90017]» с двойными кавычками вокруг него. Как бы я преобразовал эти элементы, чтобы использовать их так же, как жестко закодированные значения?
Я добавляю квадратные скобки, одинарные кавычки и строку вершин в StringBuilder в коде позади. Использование C # для этого, если это будет иметь значение. Я не женат, чтобы делать это таким образом, но все еще зеленый с JavaScript, так что это было мое первоначальное решение. Моя начальная строка выглядит так "
"['Jones Company', 26.16683, -98.23342]|['Smith Company', 33.61678, -111.90017]|['Bob Company', 29.70008, -98.03347]|['Blue Company', 37.71675, -122.21672]|['Red Company', 42.46692, -114.48342]"
Спасибо.
function initialize() {
var myOptions = {
zoom: 4,
center: new google.maps.LatLng(26.16683, -98.23342),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
//What I try to use when the hard coded is commented out
var myString = document.getElementById('hdnString').value;
var myItems = new Array();
myItems = myString.split("|");
//Hard coded items that I comment out when trying the above
var myItems = [
['Jones Company', 26.16683, -98.23342],
['Smith Company', 33.61678, -111.90017],
['Bob Company', 37.71675, -122.21672],
['Blue Company', 42.46692, -114.48342],
['Red Company', 36.58339, -121.8335]
];
// Add markers to the map
for (var i in myItems){
var myLatLng = new google.maps.LatLng(myItems[i][1], myItems[i][2]);
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
title: myItems[i][0]
});
}
}