javascript - 无法使用地理定位加载 Google Maps API

标签 javascript asp.net google-maps google-maps-api-3

我遵循了 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 ..

display

感谢任何帮助!

最佳答案

在 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/

相关文章:

android - 如何在 Google Places API 中获取特定国家/地区的结果以在 Android 中进行自动完成预测?

java - 将数字转换为整数?发现不兼容的类型 : void required: int

asp.net - 如何在 ASP.NET 中的 GridView 中定义 CellPadding

c# - 如何防止 ASP.NET 3.5 SP1 覆盖我的操作?

javascript - 如何 promise Node.js 插件方法

javascript - react /Redux/JavaScript : How to pass a callback in string format then in renderer make it work?

asp.net - 无法选择网页中的文本

javascript - 动态添加 Angular 组件到新的 html 元素

javascript - 使用谷歌地图 API 获取带有经度和纬度的地址

javascript - jquery 与另一个库冲突