繁体   English   中英

谷歌地图出错(带有创建标记)

[英]Error with google maps (with creating markers)

此代码必须使用Google Maps api初始化标记。 但是,当我尝试在浏览器中打开页面时,页面变成白色(不起作用)。 我不明白问题所在...我所有的资源都已连接。

Map.jsp:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>dsf</title>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
</head>
<body>
<script type="text/javascript">
  $.ajax({
    type: "POST",
    url: "http://localhost:1600/jsp/datasend.jsp",
    data: "",
    async: false,
    success: function(msg){
      window.obj = $.parseJSON(msg);
    }
  });
</script>
<div id="map"></div>
<script>
  var marks = [];
  window.total_count = obj.length;
  for(var i=0; i<total_count; i++){
    marks[i] = [Number(obj[i]['gps'][0]),Number(obj[i]['gps'][1])];
  }
  function initMap() {
    var map = new google.maps.Map(document.getElementById('map'), {
      zoom: 10,
      center: {lat: marks[0][0], lng:marks[0][1]}
    });
    setMarkers(map);
  }
  //alert(total_count);
  function setMarkers(map) {
    for(var i=0; i<total_count; i++){
      var image = 'http://localhost:1601/graphic/marker.svg'; //+ obj[i]['marker'] + '.svg';
      var marker = new google.maps.Marker({
        position: {lat: marks[i][0], lng: marks[i][1]},
        map: map,
        icon: image
      });
    }
  }
</script>
<script async true src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDxJe0GV6Oquvs4I8yZpEQdC7BZ-X5YXCs&signed_in=true&callback=initMap"></script>
</body>
</html>

数据发送的响应看起来像{"data":{"id":[ 1 ]}{"latitude":[ 56.55557 ]}{"longitude":[ 53.678789 ]}{"distancefortb":[ d ]}}

我的代码有什么问题?

我创建了一个带有一个标记的样品 (印度那格浦尔)。 希望这段代码对您有所帮助。

<!DOCTYPE html>
<html> 
<head> 
 <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> 
 <title>Google Maps Markers</title> 
   <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&libraries=places"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
   <script type="text/javascript">

   var map;
   // Creates the map
   function initialize() {
       map = new google.maps.Map(document.getElementById('map'), {
       zoom: 10,
       center: new google.maps.LatLng(21.1458004, 79.0881546), //For Nagpur
       mapTypeId: google.maps.MapTypeId.ROADMAP
     });
   }

   // This function takes an array argument containing a list of marker data
  function generateMarkers(locations) {
     for (var i = 0; i < locations.length; i++) {
      new google.maps.Marker({
        position: new google.maps.LatLng(21.1011957, 79.1026544),
        map: map,
        title: locations[i][0]
      });
   }
 }
</script>
</head> 
<body> 
<div id="map" style="width: 500px; height: 400px;"></div>
<script type="text/javascript">

window.onload = function () {
    initialize();
    var loc2 = [];
    // I have created by getting the city and country. Then find Latitude and Longitude.
    var address = 'Nagpur,India';
    geocoder = new google.maps.Geocoder();
    geocoder.geocode( { 'address': address}, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            loc2.push("['Nagpur'," + 21.2333 + "," + 79.2000 +"]");
            locations1 = "[" + loc2 + "]";
            generateMarkers(eval(locations1));
        } 
        else {
            alert("Geocode was not successful for the following reason: " + status);
        }
    });
};
</script>
</body>
</html>

此代码将使用标记(那格浦尔-印度)来初始化地图。 同样,您可以根据需要进行自定义。 希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM