两行代码在任意页面中实现谷歌卫星图


这两天我在一个程序中需要用到谷歌卫星地图,但是因为API太过于复杂,于是我自己总结出一个简化版本来,只需要两行JS代码即可在任意页面中实现

首先建立一个数据库,名字就叫 map_international

字段

id 自增长 主键

axis_x 单精度
axis_y 单精度
address_name UNICODE文本 16字长
about UNICODE文本 64字长

字段说明:

id:自己会增长,不用我们填写

axis_x:经度,如 -22.342231

axis_y:纬度

address_name:地名,如“悉尼市”,十六个字基本够用

about:简介,如“悉尼市位于澳大利亚....” ,六十四个字基本够用


-----------------------------------------------------------
数据库设置完毕,随便找个地标填写一下,例如:

29.97595571315068,31.13193064301058,吉萨金字塔,位于埃及尼罗河三角洲,5000年的历史......

建立一个ASP.NET文件,文件全部内容如下:
<% @ Page Language = " Jscript "   %>
<% @ Import Namespace = " System "   %>
<% @ Import Namespace = " System.Data.OleDb "   %>

< script  runat ="server" >

/*

    默认地图大小是长 480,宽460

    可以通过 w和h参数来动态设定大小
    w和h两个参数是可选的
    例如:
    
    mapload.aspx?id=1&key=abcdefghijklnm&w=320&h=240  表示窗口宽度是 320 高度是 240

*/


function  Page_Load(){

        
        
var  axis_x:String  =   "" , axis_y:String  =   "" , name:String  =   "" , about:String  =   "" ,width:String  =   " 480 " ,height:String  =   " 460 " ;

        
if  (Request.QueryString[ " w " !=   null )
        {
            width 
=  Request.QueryString[ " w " ].ToString();
        }

        
if  (Request.QueryString[ " h " !=   null )
        {
            height 
=  Request.QueryString[ " h " ].ToString();
        }

        var key:String =
Request.QueryString[ " key " ].ToString() ;
        
var  dr:OleDbDataReader;
        
var  cmd:OleDbCommand;
        
var  adp:OleDbDataAdapter;
        
var  conn:OleDbConnection;
        
var  connStr:StringBuilder;
        
var  id: int ;

            
// 安全过滤,保证不受SQL注入攻击
             try
            {
                id 
=   int .Parse(Request.QueryString[ " id " ].ToString());
            }
            
catch (e)
            {
                Response.End();
                
return ;
            }
            
            
// SQL Server 数据库
            connStr  =   new  StringBuilder( " provider=SQLOleDb;sever=localhost;uid=kvspas;password=密码;database=数据库名 " );
            
            
// ACCESS 数据库
             // connStr = new StringBuilder("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=");
             // connStr.Append(Server.MapPath("map.mdb"));

            conn 
=   new  OleDbConnection(connStr.ToString());

            cmd 
=   new  OleDbCommand( " SELECT * FROM map_international WHERE id =  "   +  id,conn);

            conn.Open();

            
try
            {
                dr 
=  cmd.ExecuteReader();

                
while (dr.Read())
                {
                    axis_x 
=  dr[ " axis_x " ].ToString();
                    axis_y 
=  dr[ " axis_y " ].ToString();
                    name 
=  dr[ " address_name " ].ToString();
                    about 
=  dr[ " about " ].ToString();
                }
            }
            
catch (e){}
            
finally
            {
                dr.Close();
                conn.Close();
            }
            
            Response.Write(
" google_map_key  =\""+key+"\"; loadMaps( " + axis_x + " , " + axis_y + " ,\ "" +name+ " \ " , " + width + " , " + height + " ); " );

}
</ script >

-------------------------
好了,导入
<script type="text/javascript" src="http://files.cnblogs.com/kvspas/google-map.js"></script>
<script type="text/javascript" src="http://上面那个asp.net文件名.aspx?id=1&key=你的谷歌地图API的KEY"></script>

如果 不想用asp.net和数据库 ,你也可以这么做:

< script  type ="text/javascript"  src ="http://files.cnblogs.com/kvspas/google-map.js" ></ script >
< script  type ="text/javascript" >
// <!--
//下面的一行修改成你自己的KEY
google_map_key  =   " ABQIAAAAWERdBboHQYPVZJOtJA8nMRTLyvHy2O1xzwu9As5J_TYbuxW7WxSOH6DCZdrClm8W38PMVlYBExCWrw " ;
loadMaps(
29.97595571315068 , 31.13193064301058 , " 吉萨金字塔 " , 400 , 300 );
// -->
</ script >

完成,下面是演示:

版权所有,转载请注明原文链接:http://blog.kvspas.com/Trackback.aspx?guid=8747c9ca-785d-4772-90a6-571df3abe034

你可能感兴趣的:(代码)