我忘记了我在Javascript中学到的一切,所以我开始了一个项目来记住一些事情。但我有一个问题:
这是我在Javascript中的代码:
var peru = new google.maps.LatLng(-9, -75);
var browserSupportFlag = new Boolean();
function initialize() {
var ubicacion;
var mapOptions = {
zoom: 6,
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl: true,
mapTypeControlOptions: {
style: google.maps.MapTypeControlStyle.DROPDOWN_MENU,
position: google.maps.ControlPosition.BOTTOM_LEFT
},
zoomControl: true,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.LARGE,
position: google.maps.ControlPosition.LEFT_CENTER
},
panControl: false,
scaleControl: false,
streetViewControl: false,
};
var map = new google.maps.Map(document.getElementById("map_canvas"),
mapOptions);
if (navigator.geolocation) {
browserSupportFlag = true;
navigator.geolocation.getCurrentPosition(function(position) {
ubicacion = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
map.setCenter(ubicacion);
}, function() {
handleNoGeolocation(browserSupportFlag);
}
);
} else {
browserSupportFlag = false;
handleNoGeolocation(browserSupportFlag);
}
function handleNoGeolocation(errorFlag) {
if (errorFlag == true) {
alert("No se han otorgado permisos de Geolocalización, o el servicio falló. Utilice Google Chrome para mayor compatibilidad.");
ubicacion = peru;
} else {
alert("Su navegador no soporta Geolocalización. Puede continuar de igual forma, pero le sugerimos utilizar el navegador Google Chrome.");
ubicacion = peru;
}
map.setCenter(ubicacion);
}
function downloadUrl(url,callback) {
var request = window.ActiveXObject ?
new ActiveXObject('Microsoft.XMLHTTP') :
new XMLHttpRequest;
request.onreadystatechange = function() {
if (request.readyState == 4) {
request.onreadystatechange = doNothing;
callback(request, request.status);
}
};
request.open('GET', url, true);
request.send(null);
}
function doNothing() {}
downloadUrl("phpsqlsearch_genxml.php?lat="+ubicacion.lat()+"&lng="+ubicacion.lng()+"&r=250", function(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");
var infoWindow = new google.maps.InfoWindow;
function bindInfoWindow(marker, map, infoWindow, html) {
google.maps.event.addListener(marker, 'click', function() {
infoWindow.setContent(html);
infoWindow.open(map, marker);
});
}
for (var i = 0; i < markers.length; i++) {
var name = markers[i].getAttribute("nombre");
var address = markers[i].getAttribute("direccion");
var point = new google.maps.LatLng(
parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
var html = "<b>" + name + "</b> <br/>" + address;
var marker = new google.maps.Marker({
map: map,
position: point,
});
bindInfoWindow(marker, map, infoWindow, html);
}
});
}
我的麻烦在于这部分:
downloadUrl("phpsqlsearch_genxml.php?lat="+ubicacion.lat()+"&lng="+ubicacion.lng()+"&r=250", function(data) {...}
我想获取纬度和逻辑变量并将它们放入“下载网址(网址,...”)的“网址”。
例如,如果我的位置是-9.123792,-78.517313你想要抓住这个网址:phpsqlsearch_genxml.php?lat = -9.123792&amp; lng = -78.517313&amp; r = 250
此外,我希望通过输入数字或类似的东西来选择搜索广播。
我真的不知道我是怎么做到这一切的,以及我将如何做我想要的一切:S
PS:抱歉我的英文。
答案 0 :(得分:1)
我假设您正在尝试修改Google的Store locator。它具有您需要的所有功能。
出现问题的地方是你没有将坐标传递给downloadUrl()
在演示中,函数searchLocationsNear(center)
在调用downloadUrl()
之前发送要连接到网址的坐标(中心)。
我建议您按照演示进行操作,并确保在修改之前了解它。
建议在phpsqlsearch_genxml.php
中使用PDO,因为mysql
函数已被弃用