未定义是不是一个功能,谷歌地理位置(Undefined is not a function, Goo

2019-06-26 17:40发布

我试图显示地址为我的网页内的谷歌地图元素上的一个标记。

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?key=my_key&sensor=true&callback=initialize"></script>
<script language="javascript" type="text/javascript">
    navigator.geolocation.getCurrentPosition(foundLocation, noLocation);
    var latitude;
    var longitude;
    var map;
    function foundLocation(position) {
        latitude = position.coords.latitude;
        longitude = position.coords.longitude;
    }
    function noLocation() {
        //Do something here in the case that no location is found, or user denies access
    }
    function initialize() {
        var mapOptions = {
            zoom: 8,
            center: new google.maps.LatLng(latitude, longitude),
            mapTypeId: google.maps.MapTypeId.ROADMAP
        }
        map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
        //setMarkers();
    }
    function addMarker(location) {
        var marker = new google.maps.Marker({
            position: location,
            map: map
        });
        markersArray.push(marker);
    }
</script>


<span id="ctl00_ContentPlaceHolder1_lblGeneratedScript"><script language="javascript"  type="text/javascript">
    var geocoder = new google.maps.Geocoder();
    geocoder.geocode( { 'address': "123 Test Dr."}, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            addMarker(results[0].geometry.location);
        } else {
            alert("Geocode failed! Reason: " + status);
        }
    });
</script>
</span>

但是,在这条线

var geocoder = new google.maps.Geocoder();

我得到的一个未捕获的类型错误“未定义是不是一个函数”。

我省略了这个选择我的代码我的API密钥,以及改变从我使用来测试一下地址。 (我家的地址)

另外,我使用ASP.NET生成跨距标签内的脚本。

Answer 1:

该API加载完毕之前,您不能构建地理编码对象。 说它或你之后initialize方法。



文章来源: Undefined is not a function, Google Geolocation