Ajax 板


LINE

各位版友大家好 小弟我是javascript的初学者 我想请问各位关於Google取得经纬度的函式问题 我参考google api的范例写出来的函式如下: function addressGps(add) { var geocoder = new google.maps.Geocoder(); geocoder.geocode({address:add},function geoResults(results, status){ //回应函数 状态ok说明有结果 if (status == google.maps.GeocoderStatus.OK) { var ans = results[0].geometry.location; //document.write(ans); return (ans); }else{ alert(":error " + status); } }); } 其中传入的add变数是中文地址,我希望得到此地址转出来的经纬度数字 但是用return传出来ans变数,在外头印出来却是undefined 如果直接在此函式里头印,会印出全部搜寻过的地址的经纬度结果 我想请问各位版友,有没有办法单独一个地址一个地址对应的方式去取得其经纬度的数值 而不是像现在这样用return拿不到数值,或是一次印出一堆数值 谢谢大家 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 218.211.91.17
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Ajax/M.1429261082.A.212.html ※ 编辑: william01044 (218.211.91.17), 04/17/2015 16:58:29 ※ 编辑: william01044 (218.211.91.17), 04/17/2015 16:59:27
1F:推 Peruheru: 你何不在return前把内容指定给外围的变数? 04/17 17:23
2F:→ Peruheru: 而且我想你应该没有真的接到return的值,你注意到它有 04/17 17:25
3F:→ Peruheru: 两层function吗?里面那层只是回呼函数 04/17 17:25
4F:→ Peruheru: 我猜你是用类似var result = addressGps(add);的方式跑 04/17 17:26
5F:→ william01044: 感谢P大的回应 我想请问指定给外围的变数是指什麽? 04/17 17:27
6F:→ Peruheru: 但addressGps本身没有回传值(至少你没写),所以收不到 04/17 17:27
7F:→ william01044: 是在function输入参数中再多加一个当回传参数吗? 04/17 17:27
8F:→ Peruheru: 不是,是比较新手的写法 04/17 17:28
9F:→ william01044: 两层function我是知道的...但是我试过几种方式 04/17 17:28
10F:→ Peruheru: 在函式外面宣告比如var glocation; 04/17 17:29
11F:→ william01044: 我拆不开这两个function 拆开来就没办法正常执行... 04/17 17:29
12F:→ william01044: 可能我功力还太弱T_T 04/17 17:29
13F:→ Peruheru: 然後在return前写glocation = ans; 04/17 17:29
14F:→ Peruheru: 这样就可以硬把结果拉出来,不过这种写法很糟XD 04/17 17:30
15F:→ Peruheru: 理论上你要的值存在geocoder里面,但function结束就没了 04/17 17:31
16F:→ Peruheru: 如果你要拉出来,正规方式是要回传两次 04/17 17:31
17F:→ william01044: 我刚刚试过P大您说的方法 但是直ans的值还是没出来 04/17 17:32
18F:→ Peruheru: 但我不熟geocoder的组成,所以没办法回答你如何回传XD 04/17 17:32
19F:→ william01044: 我是在这个函式结尾前面加上var A = ans; return(A) 04/17 17:33
20F:→ william01044: 但是结果是空值 没有办法印出来 04/17 17:34
21F:推 Peruheru: 不是不是,宣告要在函式宣告之前 04/17 17:43
22F:→ Peruheru: 之後存取A就不要再写var了 04/17 17:44
23F:→ Peruheru: 把var a;写在你贴的程式"之前" 04/17 17:44
24F:→ Peruheru: 然後里面return前写 a = ans; 04/17 17:45
25F:→ Peruheru: 这才是我想表达的方法(虽然很烂) 04/17 17:45
26F:→ william01044: 状况一样耶 还是没有值T_T 04/17 17:46
27F:→ william01044: 而且我明明是用for回圈去传地址 04/17 17:46
28F:→ william01044: 但是在这个函式里头印出来的经纬度却都连在一起 04/17 17:47
29F:→ Peruheru: 基本上你的问题在於不了解"变数存活周期" 04/17 17:47
30F:→ william01044: 并不是一个地址印一个经纬度... 04/17 17:47
31F:→ william01044: 所以我在猜是不是这个geocoder函式是全部蒐集好再传 04/17 17:48
32F:→ Peruheru: 如果你打算好好学习程式,建议先去了解一下变数存活周期 04/17 17:48
33F:→ william01044: 因为看google api范例的时候 里头有说非同步 04/17 17:48
34F:→ william01044: 我觉得不是变数周期的问题 因为我试过放在任何地方 04/17 17:49
35F:→ william01044: 都没有数值 04/17 17:49
36F:→ william01044: 不是因为那个变数在函数内被结束的关系... 04/17 17:50
37F:推 Peruheru: 你方便贴完整一点的程式吗?老实说我连你用回圈也不知道 04/17 17:51
38F:推 Peruheru: 如果你外面还有包回圈,就会多很多种可能 04/17 17:54
39F:→ william01044: 全文在另一篇 04/17 17:58







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP