1

我已经忘记了我在 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,你想为它捕获这个 url:phpsqlsearch_genxml.php?lat=-9.123792&lng=-78.517313&r=250

我还希望可以选择搜索的收音机...通过输入数字或类似的东西。

我真的不知道我是如何做到这一切的,以及我将如何做我想做的一切:S

PS.:对不起我的英语。

4

1 回答 1

1

我假设您正在尝试修改 Google 的Store locator。它具有您需要的所有功能。

出现问题的地方是您没有将坐标传递给downloadUrl()

在演示中,该函数在调用searchLocationsNear(center)之前将要加入的坐标(中心)发送到 url downloadUrl()

我建议您遵循演示并确保您在修改之前理解它。

phpsqlsearch_genxml.php建议在不推荐使用mysql功能时使用 PDO

于 2013-01-31T19:49:41.247 回答