Google マップと Places API を使用して場所のリストを取得し、それらを地図に追加しています。マーカーの 1 つをクリックすると、情報ウィンドウが表示され、ユーザーは場所の名前、連絡先の詳細などを確認できます。マーカーの約 60% ではすべて正常に機能しますが、残りの 40% では情報ウィンドウが機能しません。現れる。JavaScript エラーを見ると、次のエラーが表示されます。
Uncaught TypeError: Cannot read property 'name' of null.
情報ウィンドウを作成するコードは次のとおりです。
function createMarker(place) {
var placeLoc = place.geometry.location;
var marker = new google.maps.Marker({
map: map,
position: place.geometry.location
});
var one = 1;
var two = 2;
var request = { reference: place.reference };
service.getDetails(request, function(details, status) {
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent(
details.name + "<br />"
+ details.formatted_address + "<br />"
+ "<a target='_blank' href='" + details.website +"'>Visit Website</a>" + "<br />"
+ details.formatted_phone_number + "<br />"
+ "<a href='#' onclick='getDirections(" + details.geometry.location.toUrlValue()
+ "," + location1 + "); return false;'>Directions from Marker One</a>" + "<br />"
+ "<a href='#' onclick='getDirections2(" + details.geometry.location.toUrlValue()
+ "," + location2 + "); return false;'>Directions from Marker Two</a>" + "<br />"
);
infowindow.open(map, this);
});
});
}
エラーがよくわかりません。確かに、Google によって保存されているすべての場所には名前が必要ですか?!
記録のために、私は Google Places & Maps API のドキュメントに目を通しましたが、実際に役立つものは何も見つかりません。
これについて何か助けていただければ幸いです。
アップデート:
そのため、提案どおりに場所をコンソールに記録しました。私が行っているサンプル テストでは、マップ上に正確に 20 個のマーカーを作成します。20 個のうち、クリックすると情報ウィンドウが表示されるのは 8 個だけで、他の 12 個は上記のエラーを返します。予想どおり、20 か所すべての場所がコンソールに出力されました。すべてオブジェクトとして表示され、すべて同じように見えます。以下に、クリック可能なものとそうでないものについて、コンソールに出力されたものをリストしました。
クリック可能:
Object
geometry: Object
html_attributions: Array[0]
icon: "http://maps.gstatic.com/mapfiles/place_api/icons/bar-71.png"
id: "97df16ee5e8d0d9e0c337f52b66dd85ae44de298"
name: "Red Lion"
rating: 3.3
reference: "CnRmAAAA1Oe3LpGcT2zpHUgRq4jfsx-QsnpgUlPKKhVhBL0AVjY1BNKJiscqTbxl-25alM_DJzTIjJTeIkpuVKL0CHkxgBc_nLKNddOkKv6EICQymo7etn-MVY4h06bTKUBwSjIfH30vbNSgCeiv3Cfzy27eORIQrUUJ4nStEjkCI2fJMTaVsRoUHI04xFPDfej3xHC17nJH2mBNBzg"
types: Array[3]
vicinity: "Little Missenden, Amersham"
__proto__: Object
クリック不可:
Object
geometry: Object
html_attributions: Array[0]
icon: "http://maps.gstatic.com/mapfiles/place_api/icons/bar-71.png"
id: "01128746c46a52d9a215d3d6a01c11e22f1a49be"
name: "The Full Moon"
rating: 3.9
reference: "CnRrAAAAWDw84_G5mLrNQxd1b14uVsPhw6LmR6sXdvDrJqSDqnMUSzj88n1TImyictRtxtI6_mQz5YXyiBDWM5Un74MoCH06On5kf5JDw6RM3le2SDUcqyZO04NhqwyeBT267ctu91I74hTJmx_VGgqEpXe0HxIQhErbCKXmDJU2yaVmtltITxoUOi4OrxKU9fPGoBiYAn3NGmNpcn8"
types: Array[2]
vicinity: "Hare Lane, Little Kingshill, Great Missenden"
__proto__: Object
また、不要なコードをすべて削除しようとしました。
コンソールに出力されたプロパティの一部はさらに展開できることに注意してください。関連性があるかどうかわからないため、例では実行しませんでした。誰かが関連性があると思われる場合は、後日更新されたものを追加できます。
これまでのすべての応答に感謝します。
日