我遵循了 Google 本身关于 Map API 和其他来源的文档,试图找出问题所在,但经过几个小时的尝试,它仍然不起作用..
谁能指导我解决这个问题?
<div class="generatedMap"></div>
<div class="generatedMap"></div>
<script src="//maps.googleapis.com/maps/api/js?v=3&client=gme-KEYFROMGOOGLEAPI" type="text/javascript"></script>
<script type="text/javascript">
function initMap() {
/*var latlng = new google.maps.LatLng(latitude, longitude);
var mapOptions = {
zoom: 5,
center: new google.maps.LatLng(latitude, longitude)
}
map = new google.maps.Map(document.getElementById('generatedMap'), mapOptions);*/
var latitudeHF = document.getElementById("<%=HF_Latitude.ClientID %>");
var longitudeHF = document.getElementById("<%=HF_Longitude.ClientID %>");
var latitude = 0.0;
var longitude = 0.0;
if (latitudeHF)
{
latitude = latitudeHF.value;
}
if (longitudeHF) {
longitude = longitudeHF.value;
}
var map = new google.maps.Map(document.getElementById('generatedMap'), {
zoom: 8,
center: new google.maps.LatLng(latitude, longitude),
mapTypeId: google.maps.MapTypeId.SATELLITE
});
var marker = new google.maps.Marker({
position: new google.maps.LatLng(latitude, longitude),
map: map,
title: "<div style = 'height:60px;width:150px'><b>Consumer's location:</b><br />Latitude: " + latitude + "<br />Longitude: " + longitude
});
}
google.maps.event.addDomListener(window, 'load', initMap);
</script>
我实际上是从我的数据库中检索保存的纬度和经度,然后将其存储到 HiddenField 中并从那里检索它..
foreach (DataRow r in ds.Tables[0].Rows)
{
accountDB = r["AccountStatus"].ToString();
latitudeDB = Convert.ToDouble(r["Latitude"]);
longitudeDB = Convert.ToDouble(r["Longitude"]);
usernameDB = r["Username"].ToString();
ipDB = r["IPAddressOfCreation"].ToString();
}
HF_Latitude.Value = latitudeDB.ToString();
HF_Longitude.Value = longitudeDB.ToString();
出于说明目的,我删除了 Google Map API key 。
我得到了如图所示的纬度和经度,但我似乎无法显示 map ..
感谢任何帮助!
最佳答案
在 Div 标签而不是 class
中的代码中出现错误,您需要将 id
定义为属性。
你最好只使用这个谷歌地图的脚本 src。
<script src="https://maps.googleapis.com/maps/api/js?key=Google-api-key&callback=initMap" />
使用上面的脚本 src 后,请从代码中删除这一行。
google.maps.event.addDomListener(window, 'load', initMap);
代替:
<div class="generatedMap"></div>
应该是:
<div id="generatedMap"></div>
Javascript 代码将保持原样。如果您想保持原样,请在 javascript 中使用 blow 代码
代替:
var map = new google.maps.Map(document.getElementById('generatedMap')
应该是:
var map = new google.maps.Map(document.getElementsByClassName('generatedMap')
希望这对您有所帮助。
关于javascript - 无法使用地理定位加载 Google Maps API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45402847/