How to use Google Maps without a key? (from static to dynamic with URL)
我看到很多用户都问过这个问题,但事实上仍然没有答案,比如如何使用没有密钥的谷歌地图(所有答案都是对其他网页的引用)。
我已经设法使用了谷歌地图没有钥匙,但我只设法得到一个静态地图。你知道这个动力是怎么产生的吗?
1 2 3 4 5 | var img = new Image(); img.src ="http://maps.googleapis.com/maps/api/staticmap?center=-32.0000343,-58.0000343&zoom=5&size=300x300&sensor=true&visualRefresh=true"; return img; //OR document.body.appendChild(img); |
即使您只需单击此链接,也可以看到地图,如果更改"URL属性",则可以"编辑"地图:http://maps.googleapis.com/maps/api/staticmap?中心=-32.0000343,-58.0000343&zoom=5&size=300x300&sensor=true&visualrefresh=true
当我说"动态地图"时,我指的是这样的东西:https://google-developers.appspot.com/maps/documentation/javascript/v2/examples/map-simple
这对我很有效。我在本地主机上尝试过。StackOverflow中的其他各种解决方案都没有起到作用。
1 | <iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.com/maps?q=<?php echo urlencode($address); ?>&output=embed"></iframe><br /> |
这样,我们可以根据在后端输入的地址动态生成映射。
正如@geocodezip所说,您正在寻找谷歌地图javascript v3。
下面是使用它的简单示例(从我以前的答案中选择),它不需要任何键。
HTML:
1 | <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"> |
CSS:
1 2 3 4 5 | #map-canvas { margin: 0; padding: 0; height: 100%; } |
Javascript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | function initialize() { var myLatlng = new google.maps.LatLng(43.565529, -80.197645); var mapOptions = { zoom: 8, center: myLatlng, mapTypeId: google.maps.MapTypeId.ROADMAP } var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions); //=====Initialise Default Marker var marker = new google.maps.Marker({ position: myLatlng, map: map, title: 'marker' //=====You can even customize the icons here }); //=====Initialise InfoWindow var infowindow = new google.maps.InfoWindow({ content:"Skyway Dr" }); //=====Eventlistener for InfoWindow google.maps.event.addListener(marker, 'click', function() { infowindow.open(map,marker); }); } google.maps.event.addDomListener(window, 'load', initialize); |
我做了一个简单的小提琴供你参考。
希望你有个主意。
因为你对使用密钥不感兴趣,所以要注意限制。
google maps javascript api:每天最多可加载25000个地图服务。
这包括:
从你的评论来看,
我也试过用
1 | var mapCanvas = document.createElement("canvas"); |
但这对
1 2 3 | var mapCanvas = document.createElement("div"); mapCanvas.style.width ="200px"; mapCanvas.style.height ="200px"; |
更新的jsiddle
不要忘记设置宽度和高度属性。
我在给普朗克举个例子
http://plnkr.co/t4eultnkbwcklabpi4pu
代码
1 2 3 4 5 6 7 8 | <!DOCTYPE html> <html> <body> <iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.com/maps?q=London&ie=UTF8&&output=embed"></iframe><br /> </body> </html> |
使用谷歌地图javascript api v3(文档中有很多很好的例子)
在Android手机上试试
1 | href="google.streetview:cbll=51.470305,-0.183842&cbp=1,10,,0,2.0&mz=mapZoom" |
将此添加到锚链接