У меня есть маркеры мест для функций API Google Maps, которые я использую из учебника, найденного здесь: API Карт Google с JQuery
В любом случае мне пришлось изменить javascript для учета моего приложения. Я извлекаю маркеры из файла XML, как и раньше, хотя на этот раз я получаю несколько запросов и несколько стандартных отклонений, время обслуживания и средства для этих запросов. Я настроил XML, чтобы они добавлялись к тегу со счетчиком, но похоже, что он не рендерится в массив правильно.
К сведению, я никогда не использовал Javascript, и в основном я летаю за штанами, так что, если это зверство Javascript, не стесняйтесь, дайте мне знать, что все поколение XML написано на Python ,
Пример XML: (Я извиняюсь, я не знаю, как показать <или> при переполнении стека без простого его скрытия в качестве тега. Вокруг каждого "маркера" "маркера" "имени" "запроса X" " timetoserveX "и т. д. - это теги <и> для XML.
маркеры
маркер
имя Simpletown, CA / имя
request0 / resource / / request0
timetoserve0 .001 секунды для обслуживания запроса / timetoserve0
среднее значение0 .5309 среднее значение в секундах / среднее значение0
std_dev0 .552 Стандартное отклонение в секундах / std_dev0
request1 / resource2 // / request1
timetoserve1 0,015626 секунд для обслуживания запроса / timetoserve1
среднее1 0,0011 среднее в секундах / среднее1
std_dev1 0,004465 Стандартное отклонение в секундах / std_dev1
/ Маркер
/ Маркеры
MYMAP.placeMarkers = function(filename) {
$.get(filename, function(xml){
$(xml).find("marker").each(function(){
var name = $(this).find('name').text();
var count = 0;
var requeststring = 'request' + Integer.toString(count)
var request = new Array();
var timetoserve = new Array();
var mean = new Array();
var std_dev = new Array();
var timetoservestring = 'timetoserve' + Integer.toString(count);
var meanstring = 'mean' + Integer.toString(count);
var std_devstring = 'std_dev' + Integer.toString(count);
while ($(this).find(requeststring).text()){
timetoservestring = 'timetoserve' + Integer.toString(count);
meanstring = 'mean' + Integer.toString(count);
std_devstring = 'std_dev' + Integer.toString(count);
request[count] = $(this).find(requeststring).text();
timetoserve[count] = $(this).find(timetoservestring).text();
mean[count] = $(this).find(meanstring).text();
std_dev[count] = $(this).find(std_devstring).text();
count++;
requeststring = 'request' + Integer.toString(count)
}
// create a new LatLng point for the marker
var lat = $(this).find('lat').text();
var lng = $(this).find('lng').text();
var point = new google.maps.LatLng(parseFloat(lat),parseFloat(lng));
// extend the bounds to include the new point
MYMAP.bounds.extend(point);
var marker = new google.maps.Marker({
position: point,
map: MYMAP.map
});
var infoWindow = new google.maps.InfoWindow();
var html = ""
for (i=0;i<count;i++){
html=html+'<strong>'+name+'</strong.><br />'+request[i]+'<br />'+timetoserve[i]+'<br />'+mean[i]+'<br />'+std_dev[i]+<br />;
//var html='<strong>'+name+'</strong.><br />'+request+'</strong.><br />'+timetoserve+'</strong.><br />'+mean+'</strong.><br />'+std_dev;
}
google.maps.event.addListener(marker, 'click', function() {
infoWindow.setContent(html);
infoWindow.open(MYMAP.map, marker);
});
MYMAP.map.fitBounds(MYMAP.bounds);
});
});
}
С обновлениями больше не возникают проблемы с массивами, как это выглядит, даже если я получаю карту для рендеринга на этом этапе. Кнопка «Показать маркеры» не заполняет карту маркерами. Запуск FireBug с этим, по-видимому, только издает бесконечное количество попаданий «Break on error» и предупреждений для jQuery.