我为地址编码创建了一个Excel VBA函数。去年有效。
谷歌开始一个新的计费过程和代码不起作用。
输入:地址
输出:纬度,经度
gtmp
我把它拿到工作通过改变一个旧的服务器密钥,但带来另外一个问题。
我最近注册了两个无效的API密钥。但是,旧服务器密钥有效。 API密钥和服务器密钥有什么区别?
答案 0 :(得分:1)
感谢我的兄弟Edu的帮助!
显式选项
函数GetCoordinates(地址作为字符串)作为字符串
'This function returns the latitude and longitude of a given address using the Google Geocoding API.
'该函数使用Google Geocoding API的“最简单”形式(仅发送address参数), 因此,不使用可选参数,例如边界,语言,区域和组件。 “如果有多个结果(例如两个城市使用相同的名称),则该功能 '返回第一次出现,因此请小心输入地址(提示:使用城市名称和 '邮政编码(如果有)。
'NOTE: As Google points out, the use of the Google Geocoding API is subject to a limit of 40,000
'每月的请求,因此请注意不要超过此限制。有关更多信息,请检查: 'https://cloud.google.com/maps-platform/pricing/sheet
'In order to use this function you must enable the XML, v3.0 library from VBA editor:
'转到工具->引用->检查Microsoft XML v3.0。 “如果您没有v3.0,请使用其任何其他版本(例如v6.0)。
'2018 Update: In order to use this function you will now need a valid API key.
'检查下一个指导您如何获取免费API密钥的链接: 'https://www.myengineeringworld.net/2018/02/how-to-get-free-google-api-key.html
'2018 Update 2 (July): The EncodeURL function was added to avoid problems with special characters.
'这是来自希腊,塞尔维亚,德国和其他国家的地址的常见问题。
'Written By: Christos Samaras
'日期:2014年12月6日 ``最后更新:09/08/2018 电子邮件:xristos.samaras@gmail.com “网站:https://www.myengineeringworld.net '------------------------------------------------- -------------------------------------------------- -
'Declaring the necessary variables.
'最后2个变量使用30结尾,对应于“ Microsoft XML,v3.0”库 在VBA(msxml3.dll)中。如果您使用其他任何版本(例如v6.0),请声明这些变量 分别为XMLHTTP60和DOMDocument60。 昏暗的ApiKey作为字符串 昏暗的请求作为新的XMLHTTP30 结果变暗为新的DOMDocument30 昏暗的StatusNode作为IXMLDOMNode,LatitudeNode作为IXMLDOMNode,LongitudeNode作为IXMLDOMNode
'Set your API key in this variable. Check this link for more info:
'https://www.myengineeringworld.net/2018/02/how-to-get-free-google-api-key.html '***************************************************** ****************************************************** ************* ApiKey =“您的API密钥在这里! '示例:ApiKey =“ lxI800lklv3sdf3v5F6 .........”