主页 个人前端笔记 谷歌地图使用设计一案例
admin
发表于2012-11-11 18:41:01    只看楼主 楼主
头衔:  精益求精
注册时间: 2012-10-07
用户组: 日常管理组
发帖数:  502
金币数:  186
短消息
<script src="http://maps.google.com/maps?file=api&v=2&sensor=true&key=ABQIAAAAlnlM2hQHasmMy8LL0w6j5hRA0Ta_504de55gpp3Z9GlF98QEyBTQ2RIE_f4Y2PbML8bVnEB1Q7_fwA" type="text/javascript"></script>
//作用:传递一个或多个参数,打开地图时直接在地图上显示地址位置,
格式<?php echo $value[´city´]."|".$value[´ountry´]."|".$value[´name´];?>,

通过javascript获取处理,浏览器传递.

    <script type="text/javascript">

    var map = null;
    var geocoder = null;
    var url=window.location.href;
    url=unescape(url);
    url=url.split("=");
    url=url[1].split("|");
    var address=url[0]+" ("+url[1]+") ";
    window.onload=function(){
     if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map_canvas")); 
        map.addControl(new GSmallMapControl());      
        geocoder = new GClientGeocoder();
      }
      
      if (geocoder) {
        geocoder.getLatLng(
          address,
          function(point) {
            if (!point) {
              alert(address + " not found");
            } else {
              map.setCenter(point, 13);
              var marker = new GMarker(point);
              map.addOverlay(marker);

              // As this is user-generated content, we display it as
              // text rather than HTML to reduce XSS vulnerabilities.
              marker.openInfoWindow(document.createTextNode(address));
            }
          }
        );
      }
    }
    </script>
    <script type="text/javascript">
     function del()
     {
     var emement=parent.document.getElementById("map");
     var emement2=parent.document.getElementById("bg");
     emement2.style.display="none";
     emement.parentNode.removeChild(emement);    
     }
    </script>
 <body onunload="GUnload()" style="margin:0px">
<?php
//用于解码javascript的escape函数,供php使用
   function js_unescape( $str ){
    $ret = ´´;
    $len = strlen($str);

    for ($i = 0; $i < $len; $i++){

        if ($str[$i] == ´%´ && $str[$i+1] == ´u´){
            $val = hexdec(substr($str, $i+2, 4));
            if ($val < 0x7f) $ret .= chr($val);
            else if($val < 0x800) $ret .= chr(0xc0 |($val>>6)).chr(0x80 |($val&0x3f));
            else $ret .= chr(0xe0 |($val>>12)).chr(0x80 |(($val>>6)&0x3f)).chr(0x80 |($val&0x3f));

            $i += 5;

        }else if ($str[$i] == ´%´){
            $ret .= urldecode(substr($str, $i, 3));
            $i += 2;

        }else
            $ret .= $str[$i];
    }
    return $ret;
}
    $url=$_GET[´zone´];
    $url=js_unescape($url);
........
<div id="map_canvas" style="width: 466px; height: 378px"></div>
</body>
 
admin
发表于2012-11-11 18:41:14 1楼
头衔:  精益求精
注册时间: 2012-10-07
用户组: 日常管理组
发帖数:  502
金币数:  186
短消息
改编自http://code.google.com/intl/zh-CN/apis/maps/documentation/javascript/v2/examples/index.html

服务示例----geocoding-simple.html

回复人
回复内容

Powered BY YouYaX
个人自主开发论坛,从2010年10月份开发至今!

操作管理