gpt4 book ai didi

javascript - 谷歌地图容器显示没有 map

转载 作者:行者123 更新时间:2023-11-30 09:34:05 28 4
gpt4 key购买 nike

我知道这个问题之前已经被问过很多次,但是我看到的其他答案似乎都没有帮助我。基本上, map 的容器显示(作为页面上 500x300 像素的空白区域)但没有 map 。无论我做什么,我都无法显示 map 。

您可能已经猜到,我不熟悉 Google map ,因此非常感谢您的帮助。我设置了一个缩放并包括“溢出:可见”,这是另一个建议,除此之外。

希望这个 fiddle 能奏效:https://jsfiddle.net/7cvj565j/

findafter.php - 显示 map 的位置

<div class="container text-center">
<div class="row">
<div class="col-sm-8">
<div id="map-container">
<div id="googleMap" style="height:300px; width:500px;">
<script src="https://maps.googleapis.com/maps/api/js?key=MY_KEY&callback=initMap" async defer></script>
<script src="includes/findafitter2.js"></script>
</div>
</div>
</div>
<div class="col-sm-4">
Enter your postcode to find your nearest fitter. Do you have any questions? <a href="contact.php">Let us know!</a>
<input id="address" type="textbox" value="">
<input type="button" value="Find My Nearest Fitter" onclick="checkZip(getElementById('address').value)">
</div>
</div>
</div>

findafter2.js - map 代码

var geocoder;
var map;
var markers = [];

function initialize()
{
geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(40.768505, -111.853244);
var myOptions =
{
zoom: 8,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("googleMap"), myOptions);
addPostCode('84101');
addPostCode('84102');
addPostCode('84103');
addPostCode('84104');
addPostCode('84105');
}

function addPostCode(zip)
{
geocoder.geocode( { 'address': zip}, function(results, status)
{
if (status == google.maps.GeocoderStatus.OK)
{
map.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location,
name: zip
});
markers.push(marker);
}
else
{
alert("Geocode was not successful for the following reason: " + status);
}
});
}

function checkZip(zip)
{
var distance = Number.MAX_VALUE;
var index = 0;
geocoder.geocode( { 'address': zip}, function(results, status)
{
if (status == google.maps.GeocoderStatus.OK)
{
for(ix=0; ix< markers.length; ix++)
{
var tmp = getDistance(results[0].geometry.location, markers[ix].position);
if (tmp < distance)
{
distance = tmp;
index = ix;
}
}
alert('nearest zipcode is :' + markers[index].name);
}
});
}

function getDistance(latlng1, latlng2)
{
var R = 6371; // Radius of the earth in km
var dLat = (latlng2.lat()-latlng1.lat()) * Math.PI / 180; // Javascript functions in radians
var dLon = (latlng2.lng()-latlng1.lng()) * Math.PI / 180;
var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(latlng1.lat() * Math.PI / 180) * Math.cos(latlng2.lat() * Math.PI / 180) *
Math.sin(dLon/2) * Math.sin(dLon/2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
var d = R * c; // Distance in km
d = d * 0.621371192; // convert to miles
return d;
}

styles.css - 相关位

#map-container
{
min-height: 300px;
color: #000000;
overflow: visible;
}

Google map 代码取自另一篇 SO 帖子 ( Google maps - Postcode plotting ),以查看我的 map 代码是否破坏了它 - 这与我将要做的非常相似,并且该代码适用于很多人。

希望这已经足够清楚了。提前致谢!

最佳答案

iframe 选择是最简单的,但我认为您需要 JS 版本。 https://jsfiddle.net/scorpio777/af2nzqh1/

这可能对您不起作用,因为 API key 不正确,或者它与您正在使用的 div 和样式有关。将 map 放置在您的网页上的最简单方法是在谷歌地图上搜索位置,根据需要自定义大小并获取嵌入代码作为 iframe。

1. Search the wanted location on Google maps
2. Choose "Share or embed map" from the top-right "hamburger" menu
3. Choose "Embed map" tab > "Custom size"
and you have the iframe code.

关于javascript - 谷歌地图容器显示没有 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44605593/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com