2016-11-22 11 views
-1

上で情報ウィンドウを表示することはできません、私は情報ウィンドウを表示しようとしたが、デベロッパーツールの表示この:私はマーカーをクリックしたときに、私はドのAPIのGoogleマップを試していGoogleマップV3(マップが定義されていない)

main.js:56キャッチされないにReferenceError:私は私のaddListenerが機能geocodeaddress上であるべきことがわかったマップが定義されていない(...)

が、それはまだノーショー:( これは私のコードです:

function initMap() { 
     // Create a map object and specify the DOM element for display. 
     var latlng = new google.maps.LatLng(21.1528213,-101.7136297); 
      var mapCanvas = document.getElementById("mapa"); 
      var OpcionesMapa = {center: latlng, zoom: 12}; 
      var map = new google.maps.Map(mapCanvas, OpcionesMapa); 

     // marcador.setMap(map); 
     var geocoder = new google.maps.Geocoder(); 

     document.getElementById('submit').addEventListener('click', function(){ 
      geocodeAddress(geocoder, map); 
     }); 



     } 

    function geocodeAddress(geocoder, resultsMap) { 
    var pinColor = "01A9DB"; //Blue 
var pinImage = new  google.maps.MarkerImage("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=%E2%80%A2|" + pinColor, 
    new google.maps.Size(21, 34), 
    new google.maps.Point(0,0), 
    new google.maps.Point(10, 34)); 

    var address = document.getElementById('domicilio').value; 
    geocoder.geocode({'address': address}, function(results, status) { 
    if (status === google.maps.GeocoderStatus.OK) { 
     resultsMap.setCenter(results[0].geometry.location); 
     marker = new google.maps.Marker({ 
     map: resultsMap, 
     position: results[0].geometry.location, 
     icon: pinImage 

     }); 
     var infowindow = new google.maps.InfoWindow({ 
     content: 'Hello' 

}); 

     google.maps.event.addListener(marker, 'click', function() { 
       infowindow.open(map, marker); 
     }); 


    } else { 
     alert('Geocode was not successful for the following reason: ' + status); 
    } 
    }); 
} 
+0

私は投稿のコードで取得エラーが 'キャッチされないにReferenceErrorです:pinImageが定義されていません(...) ' – geocodezip

+0

MarkerImageのコードを忘れて申し訳ありません –

+0

[mcve] 'pinImage'を必要とせず、あなたが私たちのために投稿したコードをテストしなかったことを意味します。また、 'MarkerImage'クラスは' Icon'匿名オブジェクトの定義に置き換えられてかなり長い間廃止されました。 – geocodezip

答えて

0

の内部にはUncaught ReferenceError: map is not defined(…)というエラーが発生しています。この機能の内部にはmapが定義されていないためです。そのルーチン内のgoogle.maps.Mapオブジェクトの名前はresultsMapです。

marker = new google.maps.Marker({ 
    map: resultsMap, 
    position: results[0].geometry.location, 
    // icon: pinImage 

    }); 
    var infowindow = new google.maps.InfoWindow({ 
    content: 'Hello' 
    }); 

    google.maps.event.addListener(marker, 'click', function() { 
    infowindow.open(resultsMap, marker); 
    }); 

コードスニペット:

function initMap() { 
 
    // Create a map object and specify the DOM element for display. 
 
    var latlng = new google.maps.LatLng(21.1528213, -101.7136297); 
 
    var mapCanvas = document.getElementById("mapa"); 
 
    var OpcionesMapa = { 
 
    center: latlng, 
 
    zoom: 12 
 
    }; 
 
    var map = new google.maps.Map(mapCanvas, OpcionesMapa); 
 

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

 
    document.getElementById('submit').addEventListener('click', function() { 
 
    geocodeAddress(geocoder, map); 
 
    }); 
 
} 
 

 
function geocodeAddress(geocoder, resultsMap) { 
 

 
    var address = document.getElementById('domicilio').value; 
 
    geocoder.geocode({ 
 
    'address': address 
 
    }, function(results, status) { 
 
    if (status === google.maps.GeocoderStatus.OK) { 
 
     resultsMap.setCenter(results[0].geometry.location); 
 
     marker = new google.maps.Marker({ 
 
     map: resultsMap, 
 
     position: results[0].geometry.location, 
 
     }); 
 
     var infowindow = new google.maps.InfoWindow({ 
 
     content: 'Hello' 
 
     }); 
 

 
     google.maps.event.addListener(marker, 'click', function() { 
 
     infowindow.open(resultsMap, marker); 
 
     }); 
 

 
    } else { 
 
     alert('Geocode was not successful for the following reason: ' + status); 
 
    } 
 
    }); 
 
} 
 

 
google.maps.event.addDomListener(window, "load", initMap);
html, 
 
body, 
 
#mapa { 
 
    height: 100%; 
 
    width: 100%; 
 
    margin: 0px; 
 
    padding: 0px 
 
}
<script src="https://maps.googleapis.com/maps/api/js"></script> 
 
<input id="domicilio" value="Leon, Guanajuato" /> 
 
<input id="submit" type="button" value="submit" /> 
 
<div id="mapa"></div>

**

+0

ありがとうございました! –

関連する問題