论坛风格切换切换到宽版
  • 5182阅读
  • 1回复

基于google地图API开发的应用,可以不用着急升级到V3,V2仍然能用。顶google [复制链接]

上一主题 下一主题
离线hocool
 
发帖
20748
只看楼主 倒序阅读 0楼 发表于: 2011-10-08
在js里面,把以下内容作修改,就可以接着用v2,速度还很快。

http://maps.google.com/maps?file=api

修改为
http://ditu.google.cn/maps?file=api

或者直接作成两个版本,一个针对国外的,一个针对国内的。

范例http://www.hocool.com/map

原代码修改如下:

<!doctype html public "-//w3c//dtd xhtml 1.0 strict//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">

<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>发现你,找到你</title>
           
<script src="key.js"></script>
<script>
     var scripttag = '<' + 'script src="http://ditu.google.cn/maps?file=api&v=2.s&key=' + mykey + '">'+'<'+'/script>'
     document.write(scripttag);
</script>

<style type="text/css">
     v\:* {
     behavior:url(#default#vml);
     }
</style>


<script type="text/javascript">
svgon();

var map;
var centerpoint = new glatlng(39.917, 116.397);
var radiuspoint = new glatlng(40.078071,-90.689453);

var normalproj = g_normal_map.getprojection();      

var circleline;
var radarlines = array();
var color = '#00c000'
var weight = 1;
var opacity = 0.4;
var separation = 1;
var timeinterval = 2000;
var running = false;
var radius = 200;

function load() {
     doload();
}

function doload() {
     if (gbrowseriscompatible()) {
           map = new gmap2(document.getelementbyid("map"), {draggablecursor:"crosshair"});
           map.setcenter(centerpoint, 12);
           map.addcontrol(new gscalecontrol());
           map.addcontrol(new glargemapcontrol());
           map.addcontrol(new gmaptypecontrol());
           map.enabledoubleclickzoom();
           map.enablescrollwheelzoom();

       getnews();      
     }
}

function svgon() {
if(document.implementation.hasfeature(
  "http://www.w3.org/tr/svg11/feature#svg","1.1")){
  _msvgenabled = true;
  _msvgforced = true;
  }
  else {
//   alert("this browser is not svg enabled.");
  }
}

/**
* 初始化一个xmlhttp对象
*/
function initajax()
{
 var ajax=false;
 try {
  ajax = new activexobject("msxml2.xmlhttp");
 } catch (e) {
  try {
   ajax = new activexobject("microsoft.xmlhttp");
  } catch (e) {
   ajax = false;
  }
 }
 if (!ajax && typeof xmlhttprequest!='undefined') {
  ajax = new xmlhttprequest();
 }
 return ajax;
}

function drawshape(point,radius,sdegree,edegree){
     var rot = -0*math.pi/180;
     var vertexcount = 10;
  var points = [];
     var latconv = point.distancefrom(new glatlng(point.lat()+0.1,point.lng()))*10;
     var lngconv = point.distancefrom(new glatlng(point.lat(),point.lng()+0.1))*10;
     var step = ((edegree-sdegree)/vertexcount)||1;
  var tp;
     
     points.push(point);
     for(var i=sdegree; i<=edegree + 0.001; i+=step) {
      var y = radius * math.cos(i * math.pi/180);
      var x = radius * math.sin(i * math.pi/180);
      var lng = (x*math.cos(rot)-y*math.sin(rot))/lngconv;
      var lat = (y*math.cos(rot)+x*math.sin(rot))/latconv;

      tp = new glatlng(point.lat()+lat,point.lng()+lng);
           points.push(tp);
  }
     points.push(point);
     
     var r = point.distancefrom(tp);
     //document.getelementbyid("message").innerhtml = radius + "," + r;

     map.addoverlay( (new gpolygon(points)));      
}



function getnews(){
 //需要进行ajax的url地址
 var url = "get.php";
 //获取新闻显示层的位置
 var show = document.getelementbyid("message");
 //实例化ajax对象
 var ajax = initajax();
 //使用get方式进行请求
 ajax.open("get", url, true);
 //获取执行状态
 ajax.onreadystatechange = function() {
  //如果执行是状态正常,那么就把返回的内容赋值给上面指定的层
  if (ajax.readystate == 4 && ajax.status == 200) {
  var response = ajax.responsetext;
   show.innerhtml = response;
  map.clearoverlays();
      var radius = 50000;
      var tt = response.split("|");
      for(var i=0;i<tt.length-1;i++){
            var pp = tt.split(",");
            var point = new glatlng(pp[0],pp[1]);
            var angle = parseint(pp[2]);
            map.addoverlay(new gmarker(point));
            drawshape(point,parseint(radius),angle - 2,angle + 2);
      }
      document.getelementbyid("message").innerhtml = i;
      window.settimeout(function(){getnews();},timeinterval);
  }
 }
 //发送空
 ajax.send(null);
}

</script>
</head>

<body onload="load()" onunload="gunload()">
<table cellspacing="0" cellpadding="0" style="-moz-outline-width:8px; -moz-outline-radius:15px; -moz-outline-style:solid;-moz-outline-color:#838fbb;margin:0px;">
     <tr>
           <td valign="top">
                 <div id="map" style="width: 1024px; height: 600px"></div>
           </td>
     </tr>
</table>
<div id="header" style="color: #ff0000; font: normal 12px verdana; padding:3px; margin:12px;">

<p><img src="pinpuyi.gif" width="1024" height="337"></p>
<br/> 当前,总计有<label id="message">输出信息....</label>个活跃的测向基站  
感谢<a href="http://www.cnblogs.com/liongis">liongis</a>为 “发现你,找到你” 提供技术支持
</div>
</body>
</html>
离线BG6JJI
发帖
4940
只看该作者 1楼 发表于: 2011-10-09
来顶一下,这个看着不错,以前看过您做的这个东西