2012-04-15 16 views
4

現在Google Place APIを使用してウェブサイトをアップグレードしています。このエラーメッセージが表示される理由を理解できません:Uncaught TypeError: Cannot read property 'value' of null私はPlaces Libraryを全部読んでいて、さらにexample file全体を "スキャン"しましたが、私のコードはまったく同じものです。ここで Google Place APIで「Uncaught TypeError:ヌルのプロパティ 'value'を読み取れません」

は私のコードです:

var geocoder; 
var map; 
var myplace = '<?php echo str_replace(" ", "-", utf8_encode($_COOKIE["wrn-myplace"])); ?>'; 
var myplace_clean = '<?php echo $_COOKIE["wrn-myplace"]; ?>'; 

geocoder = new google.maps.Geocoder(); 
geocoder.geocode({'address' : myplace_clean}, function(results, status) { 
    if(status == google.maps.GeocoderStatus.OK) { 
     map.setCenter(results[0].geometry.location); 
     var myplace_center = results[0].geometry.location; 

     var marker = new google.maps.Marker({ 
      map: map, 
      position: results[0].geometry.location 
     }); 

     var myplaceControlDiv = document.createElement('div'); 
     var myplaceControl = new MyPlaceControl(myplaceControlDiv, map, myplace_center); 

     myplaceControlDiv.index = 2; 
     map.controls[google.maps.ControlPosition.TOP_RIGHT].push(myplaceControlDiv); 
    } else { 
     alert('Funktionen "geocoder" kunde inte användas på grund av följande fel: ' + status); 
    } 
}); 

var mapOptions = { 
    streetViewControl: false, 

    mapTypeControl: true, 
    navigationControlOptions: { 
     style: google.maps.NavigationControlStyle.SMALL 
    }, 

    zoomControl: true, 
    zoomControlOptions: { 
     style: google.maps.ZoomControlStyle.SMALL, 
     position: google.maps.ControlPosition.TOP_LEFT 
    }, 

    mapTypeId: google.maps.MapTypeId.ROADMAP 
}; 



map = new google.maps.Map(
    document.getElementById('weather-map'), mapOptions 
); 


var input = document.getElementById('google-search'); 
var autocomplete = new google.maps.places.Autocomplete(input); 

autocomplete.bindTo('bounds', map); 
google.maps.event.addListener(autocomplete, 'place_changed', function() { 
    var place = autocomplete.getPlace(); 
    if(place.geometry.viewport) { 
     map.fitBounds(place.geometry.viewport); 
    } else { 
     var marker = new google.maps.Marker({ 
      map: map, 
      position: place.geometry.location 
     }); 

     map.setCenter(place.geometry.location); 
     map.setZoom(17); 
    } 
}); 


var cloudControlDiv = document.createElement('div'); 
var cloudControl = new CloudControl(cloudControlDiv, map); 

cloudControlDiv.index = 1; 
map.controls[google.maps.ControlPosition.TOP_RIGHT].push(cloudControlDiv); 


var fullscreenControlDiv = document.createElement('div'); 
var fullscreenControl = new FullscreenControl(fullscreenControlDiv, map); 

fullscreenControlDiv.index = 3; 
map.controls[google.maps.ControlPosition.TOP_RIGHT].push(fullscreenControlDiv); 


var boxText = document.createElement("div"); 
boxText.style.cssText = 'background-color: #000000; border: 1px solid #ffffff; color: #eaeaea; font-family: Arial; font-size: 11px; padding: 5px 10px 5px 10px;'; 
boxText.innerHTML = 'Du är här'; 

var myPopup = { 
     content: boxText, 
     disableAutoPan: false, 
     maxWidth: 300, 
     pixelOffset: new google.maps.Size(-100, -100), 
     zIndex: null, 
     boxStyle: { 
      opacity: 0.80, 
      width: '200px' 
     }, 
     closeBoxMargin: '3px', 
     closeBoxURL: 'http://p.yusukekamiyamane.com/icons/search/fugue/icons/cross-octagon-frame.png', 
     infoBoxClearance: new google.maps.Size(1, 1), 
     isHidden: false, 
     enableEventPropagation: true 
}; 


var cloudLayer = new google.maps.weather.CloudLayer(); 
cloudLayer.setMap(map); 

elevator = new google.maps.ElevationService(); 
google.maps.event.addListener(map, 'click', getElevation); 

map.setZoom(10); 

$('#weather-data').load('jquery-fetch/fetch-weatherdata.php?place=' + myplace); 

show_positioninitialize機能で呼び出され、これが私のエラーメッセージの「説明」である:

kK 
tK.(anonymous function).dl 
(anonymous function) 
(anonymous function)%7Bmain,places,weather%7D.js:9 
bf.(anonymous function).Hc.c%7Bmain,places,weather%7D.js:24 
O%7Bmain,places,weather%7D.js:9 
df%7Bmain,places,weather%7D.js:24 
hf%7Bmain,places,weather%7D.js:24 
(anonymous function) 
ef.controls 
(anonymous function)%7Bmain,places,weather%7D.js:24 
b%7Bmain,places,weather%7D.js:10 
bf.(anonymous function).Hc%7Bmain,places,weather%7D.js:24 
O%7Bmain,places,weather%7D.js:9 
bf.(anonymous function).Hc%7Bmain,places,weather%7D.js:24 
af.(anonymous function).ke%7Bmain,places,weather%7D.js:23 
bf.(anonymous function).Hc%7Bmain,places,weather%7D.js:24 
ff%7Bmain,places,weather%7D.js:24 
(anonymous function) 

私はからJSファイルを呼びかけていますがGoogleのように:

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?key={my API key}&sensor=false&libraries=weather,places"></script> 

問題?

ありがとうございます!

答えて

8

問題は解決しました。明らかに、DIVタグ内にテキストフィールドを置くことは必須でした。

+0

他の人の利益のためにあなたの答えを更新していただけますか? – Prakhar

5

同じエラーが発生しました。 id Placeが期待されていた要素が存在しなかったことが判明しました。誤った要素ID、またはコピー/貼り付けされたコードを確認してください。

関連する問題