Javascript 地图画布不会显示

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背景尺寸:封面; 背景尺寸:封面; 背景尺寸:封面

我想不出我的错误。。请帮帮我 在我添加列表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背景尺寸:封面;
背景尺寸:封面;
背景尺寸:封面
}
#形式{
字体: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 += '&#10025;';
        } else {
          ratingHtml += '&#10029;';
        }
      }
      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 += '&#10025;';
        } else {
          ratingHtml += '&#10029;';
        }
      }
      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>