2

我是 javascript 新手,所以如果我的问题不清楚,我深表歉意。我会尽量澄清。

我要完成的工作:根据您当前的位置让谷歌地图填充健身房。(目前它仅填充一个健身房,并且仅用于当我删除 for 循环并在 i 的位置输入 0 时输入的坐标)

我正在尝试创建一个 for 循环,以便它多次运行代码块,并根据搜索和用户当前位置向地图添加多达 12 个标记。

我也无法弄清楚如何将用户的地理位置添加到 httpRequest 中。我尝试制作一个变量“both”(我将其注释掉),当放在 httprequest 中的位置时,它将输入用户当前的纬度和经度。

这是我的一段代码:

function handler_actionBtn8_onClick(mouseev){

//console.log("in button click at top " + latitude + longitude);
// both = [latitude,longitude];

for (var i=0; i<12; i++){

var data = app.httpRequest(
    "https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=41.265319,-95.948305&radius=1000&types=gym&sensor=false&key=AIzaSyCKnE1Fk2JKQXjhYuVuBK1uPZOz_bpNZRQ", 
    "GET", 

        function(data, error, httpResponse){
        if (error === false){
        console.log("in function if, error was false");
        console.log("data.results[i].name is " + data.results[i].name);
        console.log("the lng is " + data.results[i].geometry.location.lng);
        console.log("the lat is " + data.results[i].geometry.location.lat);

        // now need to display in map widget
        var temp = [data.results[i].geometry.location.lat, data.results[i].geometry.location.lng];
        app.setValue("googlemap", temp);
       // app.setProperty("gmap", "longitude", data.results[i].geometry.location.lng);
        //app.setProperty("gmap", "latitude", data.results[i].geometry.location.lat);         
    } else {
        app.showMessage("AJAX Error", "Cannot locate it");
        console.log("here is the error place data", data);
    }
    }, {}, "JSON"); 
}
}

我还有一段我没有包含的代码,它找到了地理位置,然后有变量纬度和经度,我试图在这一部分中使用它来将它添加到位置。

再次抱歉,如果这是杂乱无章的,我将尝试澄清或包括我需要的任何其他内容。

4

1 回答 1

0

这个 javascript 是在网站或手机应用程序上运行还是什么?

我无法正确测试您的代码,因为您的 api 密钥特定​​于您的域 (CORS),并且您的信息有点模糊,但是从上面的内容来看,您需要稍微重构代码:您应该移动httpRequest 在您的 forloop 之外的初学者,因为您发出相同的请求 12 次,而是遍历data.results数组以获取请求,然后将每个标记/位置添加到您的地图中。

于 2013-01-31T05:16:45.710 回答