玩转代码|Google Map api国内正常使用该如何配置

        最近有客户要求给他们网站做地图方面的功能,由于某些原因,网站必须使用google map,而且希望用到geocoding。大家知道google map api调用国内已经访问不了,虽然网上有很多教程,什么替换ip啊,把maps.google.com改成maps.google.cn。但其实这些方法都是掉了牙的,早就不管用。 今天我把我的安装方法分享出来。

 

申请api接口

        首先,我们需要申请Geocoding api和google map api。你得有一个google帐号,访问 google map api console,根据自己需求来申请相关的api。我申请的比较多。

 Places API

Maps JavaScript API

Time Zone API

Geocoding API

Maps Static API

你们可以根据各自需求来申请。

申请这个比较简单,1.新建项目

2.搜索相应api,申请

3.转到api和服务这一块,创建凭据。

这些凭据就是api key,也用来限制api的具体应用范围。

4.最后需要做结算。现在结算是免费试用阶段,申请的话,只要有一张信用卡就可以,因为已经没有了中国地区的选项,所以地址选择香港。会扣除8港元,信用卡验证通过之后会退回。 这么一来,所以的申请算结束了。

配置子域名

        我用的是cloudflare,所以直接在上面新开两个子域名,maps.example.com,mapsapis.example.com 。这里example替换成你自己的域名就可以。

配置ssl,我用的是let's encrypt,自动90天就会续签的。

sudo apt install certbot python3-certbot-nginx

sudo certbot --nginx -d example.com -d www.example.com

sudo systemctl status certbot.timer

输出结果如下,就说明自动续签正常。

安装必要的模块

我的配置环境是ubuntu 20.04, nginx。

安装replace-filter-nginx-module模块

安装之前,首先需要安装sregex

git clone https://github.com/agentzh/sregex

cd sregex/

make

make install

下载replace-filter-nginx-module

git clone https://github.com/agentzh/replace-filter-nginx-module

nginx -V

这里用到nginx -V。主要是把nginx的模块全部显示出来,等会需要重新编译。
 

         这里注意一下,--add-module=/root/replace-filter-nginx-module。需要添加进去。其它的配置选项,参考你们自己的nginx -V参数结果。

        一般重新编译的时候,都会有一堆报错。这主要是和你的模块配置参数有关,你只要把相应的模块安装上就可以。比如我遇到以下这些

pcre

sudo apt-get install libpcre3 libpcre3-dev

gd lib

apt install libgd-dev

openssl

sudo apt-get install libssl-dev

最后,把nginx做个备份,再替换掉。

cp /usr/sbin/nginx /usr/sbin/nginx.bak

cp ./objs/nginx /usr/sbin/

配置nginx

在/etc/nginx/sites-enabled目录下,新建一个配置maps.example.com.conf。

        至此,所有的配置已经完成。测试了一下,直接通过访问自己的子域名,就可以调用maps.googleapis.com的地图接口了。

使用谷歌地图API获取IP地址所在国家,您需要进行以下步骤: 1. 获取IP地址:您可以使用任何可用的IP地址查找服务来获取IP地址。例如,您可以使用IP地址查找网站,如https://www.iplocation.net/或https://www.iplocation.net/。 2. 构建API请求:构建一个包含IP地址的API请求,以便向谷歌地图API发送请求。API请求的URL应该如下所示:https://maps.googleapis.com/maps/api/geocode/json?address=IP地址&key=您的API密钥 3. 解析API响应:发送API请求后,您将收到一个JSON格式的响应。您需要解析响应以获取IP地址所在国家的信息。您可以使用任何JSON解析库来解析响应,如Python中的json模块或JavaScript中的JSON.parse()方法。 4. 提取所需信息:从API响应中提取所需信息。您可以使用响应中提供的地理编码信息来提取IP地址所在国家的信息。 以下是一个Python示例代码,演示如何使用谷歌地图API获取IP地址所在国家: ```python import requests import json # IP地址 ip_address = "8.8.8.8" # API密钥 api_key = "YOUR_API_KEY" # 构建API请求 url = f"https://maps.googleapis.com/maps/api/geocode/json?address={ip_address}&key={api_key}" # 发送API请求 response = requests.get(url) # 解析API响应 data = json.loads(response.content) # 提取所需信息 country = None for result in data["results"]: for component in result["address_components"]: if "country" in component["types"]: country = component["long_name"] break if country: break # 输出所在国家 print(f"The IP address {ip_address} is located in {country}.") ``` 请注意,您需要替换代码中的`YOUR_API_KEY`为您的实际API密钥。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jum朱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值