Я пытаюсь разобрать ответ XML от API YouTube с помощью jQuery. Моя цель - взять URL-ссылки и данные геотегов из результатов и вставить маркеры на карту Google. Каждый маркер будет иметь встроенное видео YouTube в объекте infoWindow. Запрос API, который я отправляю серверам YouTube, запрашивает видео с данными геотегов в пределах 100 км от некоторых координат. Пока я просто работаю с локальным файлом. Есть ли у кого-нибудь предложения по синтаксическому анализу XML и добавлению видео на карту Google? В настоящее время я пробую использовать многомерный массив. Известные проблемы: Моя переменная «latLng» не определена. Этого не должно быть. Это одно из немногих моих указаний на проблему. Любой совет?
мой код:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
html {
height: 100%
}
body {
height: 100%;
margin: 0px;
padding: 0px
}
#map_canvas {
height: 100%
}
</style>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true">
</script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js" type="text/javascript">
</script>
<script type="text/javascript">
$(document).ready(function() {
$.get("videos.xhtml", "xml", function(xml) {
$(xml).find("entry").each(function() {
var id = $(this).children('id').text();
var content = $(this).children('content').text();
var vid = $(this).children("link [rel=alternate]").attr("href");
var location = $(this).children('georss:where').children('gml:Point').children('gml:pos').text().split(" -").join(",");
var marker = new Array(vid, location);
var markers = new Array();
markers.push(marker);
var latLng = new google.maps.LatLng(markers[0][1]);
var markers = new Array();
var myOptions = {
zoom: 19,
center: latLng,
mapTypeId: google.maps.MapTypeId.HYBRID
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
//var vidString = '<div style="width:450; height: 400;"><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/2A-fuFeRekE&rel=1"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/2A-fuFeRekE&rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></div>';
//use arrays
for (a = 0; a < markers.length; a++) {
var vidArray = new Array(markers[a][0]);
var infoWindow = new google.maps.InfoWindow({
content: vidArray
// is not emebeded
});
}
for (i = 0; i < markers.length; i++) {
var newMarker = new google.maps.Marker({
position: markers[i][1],
map: map,
title: "Hello World"
});
var marker1 = Array();
marker1.push(newMarker);
}
for (b = 0; b < markers.length; b++) {
// how do I make it add more marker listener
google.maps.event.addListener(marker1[b], "click", function(){
infoWindow.open(map, marker1[b])
});
}
alert(vid);
});
});
});
//I need to convert to a string
</script>
</head>
<body>
<div id="map_canvas" style="width:100%; height:100%">
</div>
</body>
</html>