0

首先,我希望你们一切都好。

我目前正在完成我的任务,我需要实现这些:

  • 如果用户已注销,则显示带有 1 个标记的地图
  • 如果用户已登录,则显示带有路线的地图

我设法做到了两者,但是它们只能单独工作..过了一会儿我发现原因如下:

<script src="http://maps.google.com/maps?file=api&amp;v=2&amp&key=ABQIAAAAzr2EBOXUKnm_jVnk0OJI7xSosDVG8KKPE1-m51RBrvYughuyMxQ-i1QfUnH94QxWIa6N4U6MouMmBA"
        type="text/javascript"></script>  
       <script type="text/javascript"
src="http://maps.google.com/maps/api/js?sensor=false" /> 

显然我不能把它们都放在一起>.<所以我的问题是..有没有办法解决这个问题?

以下是我通过 ASP.NET 从后面的代码调用的 JavaScript 代码,因为我从数据库中获取了值。他们基本上是在创建我的地图。

<script type="text/javascript">    
var map;
var directionsPanel;
var directions;

function initialize(lng, lat) {
var latlng = new google.maps.LatLng(lng, lat);
var myOptions = {
  zoom: 15,
  center: latlng,
  mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"),
    myOptions);
var marker = new google.maps.Marker({position: new google.maps.LatLng(lng, lat), map:map});}

  function setRoute(log, lat, from, to) {
  map = new GMap2(document.getElementById("map_canvas"));
  map.setCenter(new GLatLng(log, lat), 15);
 directionsPanel = document.getElementById("route");
  directions = new GDirections(map, directionsPanel);
  directions.load("from: " + from + " to: " + to);
}
</script>

如果我的代码“不是那么好”或者有更好的方法,请原谅我。这实际上是我第一次使用 JavaScript。

感谢您的时间 :)

4

2 回答 2

3

您正在加载 Maps API 的两个不同版本——V2 和 V3。你应该只使用一个;我推荐 V3,因为 V2 已被弃用。

V3 是您引用的两个中的后者:<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>

之后,在http://code.google.com/apis/maps/documentation/javascript/basics.html查看 V3 的参考

于 2011-04-15T15:12:42.400 回答
1

正是凯所说的。

但请记住,当您升级到 V3 时,您很可能需要更改某些调用。例如:new GMap2(document.getElementById("map_canvas"));不在 v3 API 中。

为了做最少的工作,你可以弄清楚什么使用 v3 和什么使用 v2。然后只需移动到变化最少的那个。但如果您有时间/资源,我也建议您升级到 v3。

于 2011-04-15T16:00:28.187 回答