Javascript 地图画布不会显示
我想不出我的错误。。请帮帮我 在我添加列表div之前,地图画布仍然显示,但之后我不再显示,我甚至尝试将其删除并重新放置,甚至更改高度和宽度。。我看不出有什么问题,请帮帮我 这是我的CSS代码Javascript 地图画布不会显示,javascript,html,css,google-maps,canvas,Javascript,Html,Css,Google Maps,Canvas,我想不出我的错误。。请帮帮我 在我添加列表div之前,地图画布仍然显示,但之后我不再显示,我甚至尝试将其删除并重新放置,甚至更改高度和宽度。。我看不出有什么问题,请帮帮我 这是我的CSS代码 html{ 背景:线性梯度(rgba(0,0,0,0.5),rgba(0,0,0,0.5)),url(superb-seaside-restaurant-hd-Wallper-506329.jpg)无重复中心固定; -webkit背景尺寸:封面; -moz背景尺寸:封面; 背景尺寸:封面; 背景尺寸:封面
html{
背景:线性梯度(rgba(0,0,0,0.5),rgba(0,0,0,0.5)),url(superb-seaside-restaurant-hd-Wallper-506329.jpg)无重复中心固定;
-webkit背景尺寸:封面;
-moz背景尺寸:封面;
背景尺寸:封面;
背景尺寸:封面
}
#形式{
字体:20px“走道半黑体”;
字母间距:5px;
文本对齐:居中;
填充:3倍;
垫面:3件;
宽度:50%;
背景:#ccc;
边缘底部:10px;
/*不支持RGBA的旧浏览器的回退*/
背景:rgba(204204,0.5);
浮动:左;
}
#标题{
字体:20px“约瑟芬板”;
字母间距:10px;
背景色:#fff;
颜色:#000;
文本对齐:居中;
填充:3倍;
宽度:1255px;
背景:#ccc;
边缘底部:10px;
/*不支持RGBA的旧浏览器的回退*/
背景:rgba(204204,0.5);
}
#地图画布{
-网络工具包盒阴影:0 10px#bfdeff;
-莫兹盒阴影:0 0 5px#bfdeff;
盒影:0 0 7px#bfdeff;
浮动:对;
身高:100%;
宽度:100%;
填充:10px;
右边距:3倍;
垂直对齐:顶部;
}
#上市{
字体:18磅“尼兰”;
字母间距:5px;
文本对齐:居中;
填充:3倍;
身高:40%;
宽度:50%;
背景:#ccc;
边缘底部:10px;
/*不支持RGBA的旧浏览器的回退*/
背景:rgba(204204,0.5);
浮动:左;
}
#页脚{
字体:20px“DistrictPro精简版”;
字母间距:10px;
背景色:#fff;
颜色:#000;
文本对齐:居中;
填充:3倍;
宽度:1255px;
背景:#ccc;
边缘顶部:10px;
/*不支持RGBA的旧浏览器的回退*/
背景:rgba(204204,0.5);
浮动:左;
}
.placeIcon{
宽度:32px;
高度:37像素;
保证金:4倍;
}
霍特利肯酒店{
宽度:24px;
高度:24px;
}
#结果表{
字体:16磅“尼兰黑”;
边界塌陷:塌陷;
宽度:450px;
左边距:90像素;
浮动:左;
背景:rgba(204204,0.5);
}
#评级{
字体大小:13px;
字体系列:Arial Unicode MS;
}
#关键词标签{
文本对齐:右对齐;
宽度:70px;
字体大小:14px;
填充:4px;
位置:绝对位置;
}
.iw_表_行{
高度:18px;
}
.iw_属性_名称{
字体大小:粗体;
文本对齐:右对齐;
}
这是我的HTML代码
地图
var地图,地点,iw;
var标记=[];
var搜索超时;
var中心标记;
var自动完成;
var hostnameRegexp=new RegExp(“^https:/。+?/”);
函数初始化(){
var mylatng=new google.maps.LatLng(37.786906,-122.410156);
变量myOptions={
缩放:15,
中心:myLatlng,
mapTypeId:google.maps.mapTypeId.ROADMAP
}
map=new google.maps.map(document.getElementById('map\u canvas'),myOptions);
places=新的google.maps.places.PlacesService(地图);
google.maps.event.addListener(映射,'tilesloaded',tilesloaded);
document.getElementById('keyword')。onkeyup=函数(e){
如果(!e)var e=window.event;
如果(e.keyCode!=13)返回;
document.getElementById('keyword').blur();
搜索(document.getElementById('keyword').value);
}
var typeSelect=document.getElementById('type');
typeSelect.onchange=函数(){
搜索();
};
var rankBySelect=document.getElementById('rankBy');
rankBySelect.onchange=函数(){
搜索();
};
}
函数tilesloadded(){
搜索();
google.maps.event.clearListeners(映射,'tilesloaded');
google.maps.event.addListener(map'zoom_changed',searchifrankbyproprominence);
google.maps.event.addListener(映射,'dragend',搜索);
}
函数searchIfRankByProminance(){
if(document.getElementById('rankBy')。value=='progression'){
搜索();
}
}
函数搜索(){
clearResults();
clearMarkers();
如果(搜索超时){
clearTimeout(searchTimeout);
}
searchTimeout=window.setTimeout(reallyDoSearch,500);
}
函数reallyDoSearch(){
var type=document.getElementById('type')。值;
var关键字=document.getElementById('keyword')。值;
var rankBy=document.getElementById('rankBy').value;
var search={};
如果(关键字){
search.keyword=关键字;
}
如果(类型!=“建立”){
search.types=[type];
}
if(rankBy=='distance'&&(search.types | | search.keyword)){
search.rankBy=google.maps.places.rankBy.DISTANCE;
search.location=map.getCenter();
centerMarker=新的google.maps.Marker({
位置:search.location,
动画:google.maps.animation.DROP,
地图:地图
});
}否则{
search.bounds=map.getBounds();
}
places.search(搜索、功能(结果、状态){
if(status==google.maps.places.PlacesServiceStatus.OK){
对于(var i=0;i<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Map</title>
<link href="sanamagwork.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&libraries=places"></script>
<script type="text/javascript">
var map, places, iw;
var markers = [];
var searchTimeout;
var centerMarker;
var autocomplete;
var hostnameRegexp = new RegExp('^https?://.+?/');
function initialize() {
var myLatlng = new google.maps.LatLng(37.786906,-122.410156);
var myOptions = {
zoom: 15,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById('map_canvas'), myOptions);
places = new google.maps.places.PlacesService(map);
google.maps.event.addListener(map, 'tilesloaded', tilesLoaded);
document.getElementById('keyword').onkeyup = function(e) {
if (!e) var e = window.event;
if (e.keyCode != 13) return;
document.getElementById('keyword').blur();
search(document.getElementById('keyword').value);
}
var typeSelect = document.getElementById('type');
typeSelect.onchange = function() {
search();
};
var rankBySelect = document.getElementById('rankBy');
rankBySelect.onchange = function() {
search();
};
}
function tilesLoaded() {
search();
google.maps.event.clearListeners(map, 'tilesloaded');
google.maps.event.addListener(map, 'zoom_changed', searchIfRankByProminence);
google.maps.event.addListener(map, 'dragend', search);
}
function searchIfRankByProminence() {
if (document.getElementById('rankBy').value == 'prominence') {
search();
}
}
function search() {
clearResults();
clearMarkers();
if (searchTimeout) {
window.clearTimeout(searchTimeout);
}
searchTimeout = window.setTimeout(reallyDoSearch, 500);
}
function reallyDoSearch() {
var type = document.getElementById('type').value;
var keyword = document.getElementById('keyword').value;
var rankBy = document.getElementById('rankBy').value;
var search = {};
if (keyword) {
search.keyword = keyword;
}
if (type != 'establishment') {
search.types = [type];
}
if (rankBy == 'distance' && (search.types || search.keyword)) {
search.rankBy = google.maps.places.RankBy.DISTANCE;
search.location = map.getCenter();
centerMarker = new google.maps.Marker({
position: search.location,
animation: google.maps.Animation.DROP,
map: map
});
} else {
search.bounds = map.getBounds();
}
places.search(search, function(results, status) {
if (status == google.maps.places.PlacesServiceStatus.OK) {
for (var i = 0; i < results.length; i++) {
var icon = 'number_' + (i+1) + '.png';
markers.push(new google.maps.Marker({
position: results[i].geometry.location,
animation: google.maps.Animation.DROP,
icon: icon
}));
google.maps.event.addListener(markers[i], 'click', getDetails(results[i], i));
window.setTimeout(dropMarker(i), i * 100);
addResult(results[i], i);
}
}
});
}
function clearMarkers() {
for (var i = 0; i < markers.length; i++) {
markers[i].setMap(null);
}
markers = [];
if (centerMarker) {
centerMarker.setMap(null);
}
}
function dropMarker(i) {
return function() {
if (markers[i]) {
markers[i].setMap(map);
}
}
}
function addResult(result, i) {
var results = document.getElementById('results');
var tr = document.createElement('tr');
tr.style.backgroundColor = (i% 2 == 0 ? '#F0F0F0' : '#FFFFFF');
tr.onclick = function() {
google.maps.event.trigger(markers[i], 'click');
};
var iconTd = document.createElement('td');
var nameTd = document.createElement('td');
var icon = document.createElement('img');
icon.src = 'number_' + (i+1) + '.png';
icon.setAttribute('class', 'placeIcon');
icon.setAttribute('className', 'placeIcon');
var name = document.createTextNode(result.name);
iconTd.appendChild(icon);
nameTd.appendChild(name);
tr.appendChild(iconTd);
tr.appendChild(nameTd);
results.appendChild(tr);
}
function clearResults() {
var results = document.getElementById('results');
while (results.childNodes[0]) {
results.removeChild(results.childNodes[0]);
}
}
function getDetails(result, i) {
return function() {
places.getDetails({
reference: result.reference
}, showInfoWindow(i));
}
}
function showInfoWindow(i) {
return function(place, status) {
if (iw) {
iw.close();
iw = null;
}
if (status == google.maps.places.PlacesServiceStatus.OK) {
iw = new google.maps.InfoWindow({
content: getIWContent(place)
});
iw.open(map, markers[i]);
}
}
}
function getIWContent(place) {
var content = '';
content += '<table>';
content += '<tr class="iw_table_row">';
content += '<td style="text-align: left"><img class="hotelIcon" src="' + place.icon + '"/></td>';
content += '<td><b><a href="' + place.url + '">' + place.name + '</a></b></td></tr>';
content += '<tr class="iw_table_row"><td class="iw_attribute_name">Address:</td><td>' + place.vicinity + '</td></tr>';
if (place.formatted_phone_number) {
content += '<tr class="iw_table_row"><td class="iw_attribute_name">Telephone:</td><td>' + place.formatted_phone_number + '</td></tr>';
}
if (place.rating) {
var ratingHtml = '';
for (var i = 0; i < 5; i++) {
if (place.rating < (i + 0.5)) {
ratingHtml += '✩';
} else {
ratingHtml += '✭';
}
}
content += '<tr class="iw_table_row"><td class="iw_attribute_name">Rating:</td><td><span id="rating">' + ratingHtml + '</span></td></tr>';
}
if (place.website) {
var fullUrl = place.website;
var website = hostnameRegexp.exec(place.website);
if (website == null) {
website = 'http://' + place.website + '/';
fullUrl = website;
}
content += '<tr class="iw_table_row"><td class="iw_attribute_name">Website:</td><td><a href="' + fullUrl + '">' + website + '</a></td></tr>';
}
content += '</table>';
return content;
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
<script>
//<![CDATA[
function initialize() {
var myLatlng = new google.maps.LatLng(-25.363882,131.044922);
var mapOptions = {
zoom: 4,
center: myLatlng
}
var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
});
}
google.maps.event.addDomListener(window, 'load', initialize);
//]]>
</script>
</head>
<body>
<div id="header">
<h1>
HEADER
</h1>
</div>
<div id="listing">
Keywords:
<input id="keyword" type="text" value="Mexican,Italian,Chinese..." />
<div id="controls">
<span id="typeLabel">
Type:
</span>
<select id="type">
<option value="bar">Bars</option>
<option value="cafe">Cafe</option>
<option value="restaurant" selected="selected">Restaurants</option>
</select>
<span id="rankByLabel">
Rank by:
</span>
<select id="rankBy">
<option value="prominence">Prominence</option>
<option value="distance" selected="selected">Distance</option>
</select>
</div>
</div>
<div id="map_canvas"></div>
<div id="listing" style="overflow-y: scroll; height:400px;"><table id="resultsTable"><tbody id="results"></tbody></table></div>
<div id="footer">
Credits to Google Maps and <a href=
"http://mapicons.nicolasmollet.com">Maps Icons Collection</a>
</div>
</body>
</html>
html {
background:linear-gradient(rgba(0,0,0,0.5),rgba(0,0,0,0.5)),url(superb-seaside-restaurant-hd-wallpaper-506329.jpg) no-repeat center center fixed;
-webkit-background-size:cover;
-moz-background-size:cover;
background-size:cover;
background-size:cover
}
#form{
font:20px "Walkway SemiBold";
letter-spacing:5px;
text-align:center;
padding:3px;
padding-top:3px;
width:50%;
background:#ccc;
margin-bottom: 10px;
/* Fallback for older browsers without RGBA-support */
background:rgba(204,204,204,0.5);
float:left;
}
#header {
font:20px "Josefin Slab";
letter-spacing:10px;
background-color:#fff;
color:#000;
text-align:center;
padding:3px;
width:1255px;
background:#ccc;
margin-bottom: 10px;
/* Fallback for older browsers without RGBA-support */
background:rgba(204,204,204,0.5);
}
#map_canvas {
-webkit-box-shadow:0 0 10px #bfdeff;
-moz-box-shadow:0 0 5px #bfdeff;
box-shadow:0 0 7px #bfdeff;
float:right;
height:100%;
width:100%;
height: 100px;
width: 100px;
padding:10px;
margin-right:3px;
vertical-align:top;
}
#listing {
font:18pt "Nilland";
letter-spacing:5px;
text-align:center;
padding:3px;
height:40%;
width:50%;
background:#ccc;
margin-bottom: 10px;
/* Fallback for older browsers without RGBA-support */
background:rgba(204,204,204,0.5);
float:left;
}
#footer {
font:20px "DistrictPro-Thin";
letter-spacing:10px;
background-color:#fff;
color:#000;
text-align:center;
padding:3px;
width:1255px;
background:#ccc;
margin-top: 10px;
/* Fallback for older browsers without RGBA-support */
background:rgba(204,204,204,0.5);
float:left;
}
.placeIcon {
width: 32px;
height: 37px;
margin: 4px;
}
.hotelIcon {
width: 24px;
height: 24px;
}
#resultsTable {
font:16pt "Nilland-Black";
border-collapse: collapse;
width: 450px;
margin-left:90px;
float:left;
background:rgba(204,204,204,0.5);
}
#rating {
font-size: 13px;
font-family: Arial Unicode MS;
}
#keywordsLabel {
text-align: right;
width: 70px;
font-size: 14px;
padding: 4px;
position: absolute;
}
.iw_table_row {
height: 18px;
}
.iw_attribute_name {
font-weight: bold;
text-align: right;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Map</title>
<link href="css.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&libraries=places"></script>
<script type="text/javascript">
var map, places, iw;
var markers = [];
var searchTimeout;
var centerMarker;
var autocomplete;
var hostnameRegexp = new RegExp('^https?://.+?/');
function initialize() {
var myLatlng = new google.maps.LatLng(37.786906,-122.410156);
var myOptions = {
zoom: 15,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById('map_canvas'), myOptions);
places = new google.maps.places.PlacesService(map);
google.maps.event.addListener(map, 'tilesloaded', tilesLoaded);
document.getElementById('keyword').onkeyup = function(e) {
if (!e) var e = window.event;
if (e.keyCode != 13) return;
document.getElementById('keyword').blur();
search(document.getElementById('keyword').value);
}
var typeSelect = document.getElementById('type');
typeSelect.onchange = function() {
search();
};
var rankBySelect = document.getElementById('rankBy');
rankBySelect.onchange = function() {
search();
};
}
function tilesLoaded() {
search();
google.maps.event.clearListeners(map, 'tilesloaded');
google.maps.event.addListener(map, 'zoom_changed', searchIfRankByProminence);
google.maps.event.addListener(map, 'dragend', search);
}
function searchIfRankByProminence() {
if (document.getElementById('rankBy').value == 'prominence') {
search();
}
}
function search() {
clearResults();
clearMarkers();
if (searchTimeout) {
window.clearTimeout(searchTimeout);
}
searchTimeout = window.setTimeout(reallyDoSearch, 500);
}
function reallyDoSearch() {
var type = document.getElementById('type').value;
var keyword = document.getElementById('keyword').value;
var rankBy = document.getElementById('rankBy').value;
var search = {};
if (keyword) {
search.keyword = keyword;
}
if (type != 'establishment') {
search.types = [type];
}
if (rankBy == 'distance' && (search.types || search.keyword)) {
search.rankBy = google.maps.places.RankBy.DISTANCE;
search.location = map.getCenter();
centerMarker = new google.maps.Marker({
position: search.location,
animation: google.maps.Animation.DROP,
map: map
});
} else {
search.bounds = map.getBounds();
}
places.search(search, function(results, status) {
if (status == google.maps.places.PlacesServiceStatus.OK) {
for (var i = 0; i < results.length; i++) {
var icon = 'number_' + (i+1) + '.png';
markers.push(new google.maps.Marker({
position: results[i].geometry.location,
animation: google.maps.Animation.DROP,
icon: icon
}));
google.maps.event.addListener(markers[i], 'click', getDetails(results[i], i));
window.setTimeout(dropMarker(i), i * 100);
addResult(results[i], i);
}
}
});
}
function clearMarkers() {
for (var i = 0; i < markers.length; i++) {
markers[i].setMap(null);
}
markers = [];
if (centerMarker) {
centerMarker.setMap(null);
}
}
function dropMarker(i) {
return function() {
if (markers[i]) {
markers[i].setMap(map);
}
}
}
function addResult(result, i) {
var results = document.getElementById('results');
var tr = document.createElement('tr');
tr.style.backgroundColor = (i% 2 == 0 ? '#F0F0F0' : '#FFFFFF');
tr.onclick = function() {
google.maps.event.trigger(markers[i], 'click');
};
var iconTd = document.createElement('td');
var nameTd = document.createElement('td');
var icon = document.createElement('img');
icon.src = 'number_' + (i+1) + '.png';
icon.setAttribute('class', 'placeIcon');
icon.setAttribute('className', 'placeIcon');
var name = document.createTextNode(result.name);
iconTd.appendChild(icon);
nameTd.appendChild(name);
tr.appendChild(iconTd);
tr.appendChild(nameTd);
results.appendChild(tr);
}
function clearResults() {
var results = document.getElementById('results');
while (results.childNodes[0]) {
results.removeChild(results.childNodes[0]);
}
}
function getDetails(result, i) {
return function() {
places.getDetails({
reference: result.reference
}, showInfoWindow(i));
}
}
function showInfoWindow(i) {
return function(place, status) {
if (iw) {
iw.close();
iw = null;
}
if (status == google.maps.places.PlacesServiceStatus.OK) {
iw = new google.maps.InfoWindow({
content: getIWContent(place)
});
iw.open(map, markers[i]);
}
}
}
function getIWContent(place) {
var content = '';
content += '<table>';
content += '<tr class="iw_table_row">';
content += '<td style="text-align: left"><img class="hotelIcon" src="' + place.icon + '"/></td>';
content += '<td><b><a href="' + place.url + '">' + place.name + '</a></b></td></tr>';
content += '<tr class="iw_table_row"><td class="iw_attribute_name">Address:</td><td>' + place.vicinity + '</td></tr>';
if (place.formatted_phone_number) {
content += '<tr class="iw_table_row"><td class="iw_attribute_name">Telephone:</td><td>' + place.formatted_phone_number + '</td></tr>';
}
if (place.rating) {
var ratingHtml = '';
for (var i = 0; i < 5; i++) {
if (place.rating < (i + 0.5)) {
ratingHtml += '✩';
} else {
ratingHtml += '✭';
}
}
content += '<tr class="iw_table_row"><td class="iw_attribute_name">Rating:</td><td><span id="rating">' + ratingHtml + '</span></td></tr>';
}
if (place.website) {
var fullUrl = place.website;
var website = hostnameRegexp.exec(place.website);
if (website == null) {
website = 'http://' + place.website + '/';
fullUrl = website;
}
content += '<tr class="iw_table_row"><td class="iw_attribute_name">Website:</td><td><a href="' + fullUrl + '">' + website + '</a></td></tr>';
}
content += '</table>';
return content;
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div id="header">
<h1>
HEADER
</h1>
</div>
<div id="listing">
Keywords:
<input id="keyword" type="text" value="Mexican,Italian,Chinese..." />
<div id="controls">
<span id="typeLabel">
Type:
</span>
<select id="type">
<option value="bar">Bars</option>
<option value="cafe">Cafe</option>
<option value="restaurant" selected="selected">Restaurants</option>
</select>
<span id="rankByLabel">
Rank by:
</span>
<select id="rankBy">
<option value="prominence">Prominence</option>
<option value="distance" selected="selected">Distance</option>
</select>
</div>
</div>
<div id="map_canvas"></div>
<div id="listing" style="overflow-y: scroll; height:400px;"><table id="resultsTable"><tbody id="results"></tbody></table></div>
<div id="footer">
Credits to Google Maps and <a href=
"http://mapicons.nicolasmollet.com">Maps Icons Collection</a>
</div>
</body>
</html>