使用谷歌地图的javascript网页不';我不能在安卓上工作
我使用Javascript创建了一个简单的Google地图网页。我解析一个XML文件,并在我居住的韩国城市的地图上显示一系列标记。在windows机器上的所有浏览器中都能很好地工作,但当我在Android手机上访问同一页面时就根本无法工作。我得到了网页的所有html,包括菜单、广告等,但地图甚至没有显示出来。 将手机连接到Eclipse并检查了日志,但我看不到任何错误。有人知道为什么Android在显示谷歌地图页面时会遇到问题吗 如果您想查看代码,请访问: 我用来填充地图的javascript如下所示:使用谷歌地图的javascript网页不';我不能在安卓上工作,javascript,Javascript,我使用Javascript创建了一个简单的Google地图网页。我解析一个XML文件,并在我居住的韩国城市的地图上显示一系列标记。在windows机器上的所有浏览器中都能很好地工作,但当我在Android手机上访问同一页面时就根本无法工作。我得到了网页的所有html,包括菜单、广告等,但地图甚至没有显示出来。 将手机连接到Eclipse并检查了日志,但我看不到任何错误。有人知道为什么Android在显示谷歌地图页面时会遇到问题吗 如果您想查看代码,请访问: 我用来填充地图的javascript如
function detectBrowser() {
var useragent = navigator.userAgent;
var mapdiv = document.getElementById("map_canvas");
if (useragent.indexOf('iPhone') != -1 || useragent.indexOf('Android') != -1 ) {
mapdiv.style.width = '100%';
mapdiv.style.height = '100%';
} else {
mapdiv.style.width = '600px';
mapdiv.style.height = '800px';
}
}
var markersArray = new Array();
var map;
function initialize() {
var latlng = new google.maps.LatLng(35.543401,129.340954);
var myOptions = {
zoom: 12,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map_canvas"),
myOptions);
detectBrowser();
var dine_image = new google.maps.MarkerImage(
'/Maps/dine.png',
new google.maps.Size(50,50),
new google.maps.Point(0,0),
new google.maps.Point(25,50)
);
var drink_image = new google.maps.MarkerImage(
'/Maps/drink.png',
new google.maps.Size(50,50),
new google.maps.Point(0,0),
new google.maps.Point(25,50)
);
var shadow = new google.maps.MarkerImage(
'/Maps/shadow.png',
new google.maps.Size(78,50),
new google.maps.Point(0,0),
new google.maps.Point(25,50)
);
// read the xml file
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else {// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","/uoplaces.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
xml=xmlDoc.getElementsByTagName("place");
// parse xml
for (i=0; i < xml.length; i++) {
var name = xml[i].getElementsByTagName("name")[0].childNodes[0].nodeValue;
var type = xml[i].getElementsByTagName("name")[0].getAttribute("category");
var link = xml[i].getElementsByTagName("link")[0].childNodes[0].nodeValue;
var lat = xml[i].getElementsByTagName("lat")[0].childNodes[0].nodeValue / 1000000;
var long = xml[i].getElementsByTagName("long")[0].childNodes[0].nodeValue / 1000000;
var contentString = '<div id="content">'+
'<h1 id="firstHeading" class="firstHeading">' + name + '</h1>'+
'<a href=' + link + '>' + 'More Info' + '</a>'+
'</div>';
var infowindow = new google.maps.InfoWindow();
var myLatlng = new google.maps.LatLng(lat,long);
if (type == "restaurant") {
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
type: type,
icon: dine_image,
shadow: shadow,
html: contentString
});
}
else {
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
type: type,
icon: drink_image,
shadow: shadow,
html: contentString
});
}
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(this.html);
infowindow.open(map, marker);
}
})(marker, i));
markersArray.push(marker);
} // parse
for (i in markersArray) {
markersArray[i].setMap(map);
}
} //end function initialize
// Removes the overlays from the map, but keeps them in the array
function clearOverlays() {
if (markersArray) {
for (i in markersArray) {
markersArray[i].setMap(null);
}
}
}
// Shows any overlays currently in the array
function showOverlays(category) {
if (markersArray) {
for (i in markersArray) {
if (markersArray[i].type == category) {
markersArray[i].setMap(map);
}
}
}
}
函数检测浏览器(){
var useragent=navigator.useragent;
var mapdiv=document.getElementById(“映射画布”);
if(useragent.indexOf('iPhone')!=-1 | | useragent.indexOf('Android')!=-1){
mapdiv.style.width='100%';
mapdiv.style.height='100%';
}否则{
mapdiv.style.width='600px';
mapdiv.style.height='800px';
}
}
var markersArray=新数组();
var映射;
函数初始化(){
var latlng=新的google.maps.latlng(35.543401129.340954);
变量myOptions={
缩放:12,
中心:拉特林,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
map=new google.maps.map(document.getElementById(“map_canvas”),
肌肽);
检测浏览器();
var dine_image=new google.maps.MarkerImage(
“/Maps/dine.png”,
新谷歌地图大小(50,50),
新google.maps.Point(0,0),
新谷歌地图点(25,50)
);
var drink_image=new google.maps.MarkerImage(
“/Maps/drink.png”,
新谷歌地图大小(50,50),
新google.maps.Point(0,0),
新谷歌地图点(25,50)
);
var shadow=new google.maps.MarkerImage(
“/Maps/shadow.png”,
新谷歌地图尺寸(78,50),
新google.maps.Point(0,0),
新谷歌地图点(25,50)
);
//读取xml文件
if(window.XMLHttpRequest){//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}
else{//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
open(“GET”,“/uoplaces.xml”,false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
xml=xmlDoc.getElementsByTagName(“位置”);
//解析xml
for(i=0;i
事实上,我已经创建了一个Android应用程序,使用了相同的GoogleMaps API、数据和用途,并且运行良好。只是Android浏览器或Android上的Firefox不起作用,这让我觉得可能是在initialize()函数中完成了XMLHTTPREQUEST
有什么想法吗 您是否尝试过包含这些元标记
编辑:
你的网页在安卓4.0.3上运行。你添加了一些代码,虽然我看到了
function detectBrowser() {
var useragent = navigator.userAgent;
var mapdiv = document.getElementById("map_canvas");
if (useragent.indexOf('iPhone') != -1 || useragent.indexOf('Android') != -1 ) {
mapdiv.style.width = '480px';
mapdiv.style.height = '600px';
虽然行“parent.removeChild(nastylogo);”抛出“Uncaught Error:NOT\u FOUND\u ERR:DOM Exception 8”以防其他人遇到此问题,但问题在于我的CSS。我已经将iPhone或Android设置为%,但没有设置大小。如果我有一个台式机/笔记本电脑浏览器,则大小已设置,但如果我有一个电话浏览器,则大小未设置,并且设置未设置内容的百分比,则没有地图画布可供绘制。您下载网页源的链接不起作用。我有一个:但我添加了您提到的内容,但这没有帮助。仍然只是一个空白区域,地图应该在其中,链接只是实际站点网页的url。一旦加载到浏览器中,就可以查看源代码。应该是我从你的服务器得到了一个web页面not found响应,另外你需要将一个php页面放在zip中,使其可下载,否则web服务器将处理php,没有人能看到php source.wow。现在,我的桌面浏览器根本无法使用该网页。这不是我的好日子,所以无论我做什么测试,都可以在桌面上运行,但在手机上仍然无法运行。没有错误,什么都没有。你不需要php,那只是我的网页菜单。这个
var parent = document.getElementById('templatemo_container');
var nastylogo = document.getElementById('templatemo_top_panel');
parent.removeChild(nastylogo);
} else {
mapdiv.style.width = '600px';
mapdiv.style.height = '800px';
}
}