微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

可以从Google Maps获取纬度和经度的Javascript

如何解决可以从Google Maps获取纬度和经度的Javascript

我正在尝试从API调用提取经度/纬度到Google Maps。我正在使用的代码如下:

var text gMaps = "https://maps.googleapis.com/maps/api/geocode/xml?address=" & URLEncode(SearchAndReplace([Related Staff - Address]," ","+")) & "&key=xxxxxxxxxxxxxxxxxxxx";

var text lat = URLRoot() & "db/" & Dbid() & "?act=API_EditRecord" & "&rid=" & [Record ID#] & "&apptoken=xxxxxxxxxxxxx" & "&_fid_113=";    

    "javascript: {" &
   
         "$.get('" & $gMaps & "',function(data,success) {" &
            "console.log(data);" &
            "var geo = data.getElementsByTagName('geometry')[0].getAttribute('lat');"  &
            "console.log(geo);" & 
            "$.get('" & $lat & "'+geo);" &
            "window.location.reload();" &
        "});" &
"}"

这是quickbase中的一个按钮,用于将信息放入2个字段。上面的示例目前仅涉及纬度。这段代码给了我空结果,我对javascript很熟悉,但是仍然需要大量学习。

这是我要从中获取的xml响应。

XML

感谢您提供的任何帮助。

Dana

解决方法

您可以使用Javascript的DOMParserXPath功能从XML字符串中提取latlng

let xmlString = `
    <GeocodeResponse>
     <status>OK</status>
     <result>
      <type>sample</type>
      <name>Sample XML</name>
      <location>
       <lat>37.4217550</lat>
       <lng>-122.0846330</lng>
      </location>
     </result>
     <result>
      <message>The secret message</message>
     </result>
    </GeocodeResponse>
`

var parser = new DOMParser();
var xmlDoc = parser.parseFromString(xmlString,"text/xml"); //important to use "text/xml"

var nsResolver = xmlDoc.createNSResolver( xmlDoc.ownerDocument == null ? xmlDoc.documentElement : xmlDoc.ownerDocument.documentElement);

var lat = xmlDoc.evaluate('//lat',xmlDoc,nsResolver,XPathResult.STRING_TYPE,null ).stringValue;
var lng = xmlDoc.evaluate('//lng',null ).stringValue;

console.log(lat,lng) // 37.4217550 -122.0846330

另请参见Parse XML file with JavaScript and plot on Google Maps

,

您似乎没有完成lat查询字符串变量。您的变量最终是“ yourdomain.quickbase.com/db/yourdbid?act=API_EditRecord&apptoken=&rid=&_fid_113=“,因此fid 113实际上从未分配任何值。即使您正在下面运行JavaScript,也没有告诉它要分配给fid 113的位置。此外,将JavaScript注入很快在Quick Base中成为过去已经不值一提了,所以这可能是您想要的而是放入代码页,这反而会更容易,因为这样您就可以使用Google Maps API提供的地址解析器对象。

,

我建议使用Quick Base内的“代码页”代替此解决方案的公式字段。使用代码页,您可以进入XML解析器库以处理响应,然后使用纬度和经度值对Quick Base进行下一个API调用。那将是最佳做法。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?