谷歌似乎改变了他们的iFrame的工作方式。现在左上方有一个信息框,试图显示地名。问题是,在爱尔兰,通常不可能使用商业名称来确定地图,而且通常你需要使用街道名称等等,这使得这个箱子功能无用,因为街道的名称就在那里地图,以及地图旁边的页面!
我怎样才能摆脱这件事?在这个例子中,该业务与爱尔兰教练位于同一建筑物内。地图坚持认为,通过在地址中加入,这位律师出于某种原因希望告知潜在客户爱尔兰教练的位置!
我已经尝试了iwloc但它没有做任何事情,我无法通过CSS和jQuery实现它,因为它在另一个域上!
有什么想法吗?
答案 0 :(得分:24)
已停止解决 2017年2月。他们必须更新自己的API。 :(
请在2014年1月22日之前使用ZETA'
你就是这样做的!
工作版
<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2381.7399040776495!2d-6.261147484122739!3d53.34791197997939!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!3m2!1sen!2sus!4v1462581622087" width="600" height="450" frameborder="0" style="border:0" allowfullscreen></iframe>
我注意到另一个网站的嵌入模式只有#34;查看更大的地图&#34;文字,没有额外的东西。只需删除几个字符。
完全嵌入
<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2381.7399040776495!2d-6.261147484122739!3d53.34791197997939!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x48670e84fbdd6bd3%3A0x998692b4f1b691e1!2sUlster+Bank+Chambers%2C+O'Connell+Street+Lower%2C+Dublin+1%2C+Ireland!5e0!3m2!1sen!2sus!4v1462581622087" width="600" height="450" frameborder="0" style="border:0" allowfullscreen></iframe>
这是已删除的部分
1m2!1s0x48670e84fbdd6bd3%3A0x998692b4f1b691e1!2sUlster+Bank+Chambers%2C+O'Connell+Street+Lower%2C+Dublin+1%2C+Ireland!5e0!
我也尝试过其他地址。
答案 1 :(得分:19)
从1822年1月22日起使用坐标而不是商家名称时,它可以正常工作
产生的html是这样的:
<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3333.967410377096!2d-111.89998968453055!3d33.31966746342457!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x0%3A0x0!2zMzPCsDE5JzEwLjgiTiAxMTHCsDUzJzUyLjEiVw!5e0!3m2!1sen!2sus!4v1516690469899" width="600" height="450" frameborder="0" style="border:0" allowfullscreen></iframe>
答案 2 :(得分:2)
进一步挖掘后,您要做的是删除谷歌地图的地方卡之前回答过类似的问题: Google Maps Embed - Remove Place Card
答案 3 :(得分:2)
在这里有两个答案,一个摆脱了信息框,一个可能回答了在信息框中的正确位置。希望他们中的一个能帮上忙。
注意:这里的方法可能被认为是“黑客”,如果Google更改了其底层嵌入功能,则可能会更改。
我最终在这里寻找类似的答案,根据其他人的发言,我提出了这个答案。答案与其他答案相似,但希望能解释一些有关嵌入网址以及如何使用经纬度,经度和缩放(可以从CMS中的位置插件获得的东西)生成嵌入网址的信息。
使用这篇文章作为搜索的基础,我发现了几个不同的文章,概述了embed参数的细目分类,这些内容本身很有趣: Decoding the Google Maps embedded parameters,导致了http://blog.themillhousegroup.com/2016/08/deep-diving-into-google-pb-embedded-map.html
我从这些文章中提取的内容(此处不再赘述)是“ pb”参数的细分。 “ pb”是专有(?)格式,“ m”是矩阵引用。这里显示的是从Google Maps嵌入共享生成的嵌入代码的示例。
<iframe src="https://www.google.com/maps/embed?pb=
!1m18
!1m12
!1m3
!1d2256.8774176856136
!2d145.01353351606252
!3d-37.79291244062522
!2m3
!1f0
!2f0
!3f0
!3m2
!1i1024
!2i768
!4f13.1
!3m3
!1m2
!1s0x0%3A0x0
!2zLTM3Ljc5MjkxNjcgMTQ1LjAxNTcyMjI
!5e0
!3m2
!1sen
!2suk
!4v1532346966021
" width="600" height="450" frameborder="0" style="border:0" allowfullscreen></iframe>
通过玩耍,我发现整个“ pb”参数可以简化为
<iframe src="https://www.google.com/maps/embed?pb=
!1m7
!1m2
!1m1
!1d2256.8774176856136
!3m3
!1m2
!1s0
!2zLTM3Ljc5MjkxNjcgMTQ1LjAxNTcyMjI
" width="450" height="450" frameborder="0" style="border:0" allowfullscreen></iframe>
注意:“ m”后的数字减少,表示“矩阵”中的项目较少
以上嵌入内容用于 lat = -37.7929167 ,长= 145.0157222 和 zoom = 17
正如另一个答案所暗示的那样,似乎如果仅使用纬度和经度(使用此嵌入api,而不使用嵌入位置api),则不会出现信息框,但是我需要知道如何获取嵌入网址,而无需先通过Google来从共享中生成网址。
在“ pb”细分中,需要注意几个部分
比例可以从我在https://gis.stackexchange.com/questions/7430/what-ratio-scales-do-google-maps-zoom-levels-correspond-to和https://www.esri.com/arcgis-blog/products/product/mapping/how-can-you-tell-what-map-scales-are-shown-for-online-maps/这里找到的算法中得到。
但是我发现我所期望的数字不太正确,所以我把变焦级别弄乱了
var mapScale = 591657550.5 / Math.pow( 2, zoom + 1);
// The results of this goes after the "1d" part in the map scale
对于坐标,请在经纬度上使用base64(显示的示例是针对javascript的)来获取结果字符串。我已经使用十进制度和度分秒格式来工作了。
var base64 = btoa([lat,long]); // lazy "lat,long" formatting
// the result of this goes after the "2z" part in the coordinate
如果要编写脚本,这是一个使用javascript生成iframe的简单示例,但是您可能希望创建整个src服务器端。请注意:这与javascript解决方案无关,这是脚本解决方案的示例。
// create the iframe and with the required properties.
var iframe = document.createElement("iframe");
iframe.width = 450;
iframe.height = 450;
iframe.frameborder = 0;
iframe.style.border = 0;
iframe.setAttribute('allowFullScreen', '')
document.body.appendChild(iframe)
// sample lat and long.
var lat = -37.7929167;
var long = 145.0157222;
var zoom = 17;
// get the scale
var mapScale = 591657550.500000 / Math.pow( 2, zoom+1);
// get the base64 representation
var base64 = btoa([lat,long]); // lazy "long,lat" formatting
// set the source of the iframe
iframe.src = 'https://www.google.com/maps/embed?key=asdfsdfsf&pb=!1m7!1m2!1m1!1d' + mapScale + '!3m3!1m2!1s0!2z' + base64;
我在Codepen上创建了一个示例,其中显示了原始嵌入,缩小的嵌入,没有比例的嵌入以及脚本化的解决方案。 https://codepen.io/mcgern/pen/zLZJmQ
您可能已经尝试过此方法,但是如果您要投放的业务具有Google地点ID,则可以使用https://developers.google.com/places/place-id找到它。取得地点编号后,您就可以在地点嵌入网址中使用它
<iframe width="600" height="450" frameborder="0" style="border:0"
src="https://www.google.com/maps/embed/v1/place?q=place_id:ChIJ02vd-
4QOZ0gR4ZG28bSShpk&key=<INSERT_API_KEY>" allowfullscreen></iframe>
(我刚刚发现一个随机的地方,看起来像是与爱尔兰教练同在的建筑物)
答案 4 :(得分:2)
Update_2020:
1。在Google地图中找到您的位置
2。右键单击目标,然后选择What's here?
3。在屏幕下方,您可以看到这样的坐标:29.586525, 52.546173
4。现在将坐标粘贴到搜索框中
5。单击share
按钮并选择Embed a map
并复制iframe
标签
答案 5 :(得分:1)
2017年中期,您可以使用内置的Google API控制标记disableDefaultUI
像这样使用它:
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
center: {lat: -33, lng: 151},
disableDefaultUI: true
});
}
参考:https://developers.google.com/maps/documentation/javascript/controls#DisablingDefaults
<iframe src="https://google-developers.appspot.com/maps/documentation/javascript/examples/full/control-disableUI" width="100%" height="300" frameborder="0"></iframe>
答案 6 :(得分:1)
只需将此代码放在css(stye.css)上:
.place-card .place-card-large{
display: none !important;
}
此评论框将被删除。最好在地图容器中使用一个类,例如
.my-map .place-card .place-card-large{
display: none !important;
}
完成!
答案 7 :(得分:0)
只需输入目的地,例如规定要走的路,它就会移除替代品,这样你仍然可以嵌入iframe
答案 8 :(得分:-1)
只需从嵌入代码中删除一些字符,然后就可以了。
正常嵌入:
<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3929.040079626225!2d76.32828391488012!3d10.013548175548115!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x3b080cf735671585%3A0x515419464975212e!2sCoredes+-+UX+Studio!5e0!3m2!1sen!2sin!4v1536297325864" width="600" height="450" frameborder="0" style="border:0" allowfullscreen></iframe>
您只需要删除1m2!
和1sen!
之间的字符
修改后的代码:
<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3929.040079626225!2d76.32828391488012!3d10.013548175548115!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1sen!2sin!4v1536297325864" width="600" height="450" frameborder="0" style="border:0" allowfullscreen></iframe>
我在不同国家/地区尝试了十多个地方,并为我做得很好。
答案 9 :(得分:-3)
不完全符合您的要求,但如果您的律师地址显示在谷歌地图上,那么为什么不只是将搜索嵌入到地址中。
<iframe
width="600" height="450" frameborder="0" style="border:0"
src="https://www.google.com/maps/embed/v1/search?q=1873 Bachelors Walk, Dublin,
Ireland
&key=AIzaSyDsQc1PNQhYYVbGn9R4_vWY3SOlEKOM7JU">
</iframe>
答案 10 :(得分:-9)
我的简单解决方案:将Firefox与两者一起使用&#34; AdblockPlus &#34;和&#34; AdblockPlus元素隐藏助手&#34; addins 识别该框并删除它非常容易。在Google重命名隐藏元素(或删除您创建的元素隐藏规则)之前,它永远不会返回。这种方法也适用于从我们喜欢的任何网站中删除几乎所有元素 - 我大量使用它来删除我经常访问的许多页面中的各种元素。需要一些练习来获得使用这种技术的感觉 - 但它工作得很漂亮。而且, Ghostery 和 Adblock Plus 的组合是来自天堂的礼物。