我正在为房地产建立一个房地产清单,在后端(但也在前端),我需要用一个Pin显示Google。
地图不应是交互式的,而应简单地显示平面的位置。没有特殊的别针图标,没有其他交互。
我在我的暂存环境中,在一个月内API的调用产生了400多美元的成本,不幸的是,我要支付……
我怎样才能降低谷歌地图的成本?这是我第一次实现这些API.
发布于 2022-01-20 11:52:02
嘿,所以,我遇到了完全相同的问题,而建设一个房地产网站不久之前。
我们有100多个房产清单,都有一个交互式地图,可以过滤附近的学校/商店等等,这都依赖于地图JavaScript API以及Places,当你开始每周收到10k请求时,两者都变得相当昂贵!
这是疯狂的几个星期的教训:
Maps嵌入API是免费使用的,它的声音非常适合您的需要,不需要编程地生成地图,它只是一个iframe,您可以在iframe的URL参数中设置延迟和经度(或任何其他查询)。https://developers.google.com/maps/documentation/embed/get-started
查看下面的链接,以构造URL和所有可用参数:https://developers.google.com/maps/documentation/embed/embedding-map
仅使用这一点就大大降低了我们的成本,这样我们就可以免费每月使用它们了。然后,我们通过单击“显示附近”按钮,将交互式地图设置为只为请求它的用户服务。因此,嵌入API的作用有点像一个外观。
你也学到了很多关于通过谷歌搜索控制台控制你的API的知识,你想要设置使用警告和阈值,以确保你永远不会在未来运行任何意想不到的成本。此外,您希望设置应用程序限制(HTTP引用程序)。
所有这些都被提到--与谷歌取得联系,他们对电子邮件的反应非常灵敏。如果你解释情况和所有措施到位,他们可以帮助,如果悬而未决的法案将使你破产!
他们真的理解并抹去了我最初的账单,从那时起,我就一直在监控这个项目。
发布于 2022-01-20 15:38:01
我的建议是用低成本的地图更新基于用户交互的体验。有两个成本较低的映射比完整的new google.maps.Map()有更少的选项
当用户在地图上单击/悬浮/等时,将其替换为功能齐全的映射。我做了一个一个按钮的例子。
import { Loader } from "@googlemaps/js-api-loader";
let map;
const center = { lat: 41.90476224706472, lng: 12.49822074385094 };
const zoom = 14;
const url = "https://maps.googleapis.com/maps/api/staticmap";
const loader = new Loader({
apiKey: "YOUR_API_KEY",
version: "weekly",
});
document.addEventListener("DOMContentLoaded", () => {
const wrapper = document.getElementById("wrapper");
wrapper.style.backgroundImage = `url(${url}?center=${center.lat},${center.lng}&zoom=${zoom}&scale=2&size=${wrapper.clientWidth}x${wrapper.clientHeight}&key=YOUR_API_KEY)`;
wrapper.addEventListener("click", () => {
wrapper.remove();
loader.load().then(() => {
map = new google.maps.Map(document.getElementById("map"), {
center,
zoom,
});
});
});
});

备注
https://stackoverflow.com/questions/70785567
复制相似问题