当前位置:首页>>开发编程>>VS.NET>>新闻内容  
用ASP.NET实现调用谷歌(Google)卫星图
作者: 发布时间:2007-10-30 11:00:24 | 【字体:

这两天我在一个程序中需要用到谷歌卫星地图,但是因为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://www.cnblogs.com/Files/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://www.cnblogs.com/Files/kvspas/google-map.js"></script>
<script type="text/javascript">
//<!--
//下面的一行修改成你自己的KEY
google_map_key = "ABQIAAAAWERdBboHQYPVZJOtJA8nMRTLyvHy2O1xzwu9As5J_TYbuxW7WxSOH6DCZdrClm8W38PMVlYBExCWrw";
loadMaps(29.97595571315068,31.13193064301058,"吉萨金字塔",400,300);
//-->
</script>


文章来源:
·在ASP.NET中使用AJAX的简单方法
·ASP.NET后台代码实现XmlHttp跨域访问
·ASP.NET取得当前页面的完整URL
·如何在ASP.NET程序里面执行DOS命令
·IIS5IIS6IIS7的ASP.net请求处理过程比较
·ASP.NET备份SQL Server数据库的方法
·让网站图片“另存为”“无标题.bmp”的技巧
·ASP.NET GridView的分页功能
·ASP.NET实现字母+数字方式验证码
·ASP.NET采集系统万能正则表达式
 放生
 愚爱
 够爱
 触电
 白狐
 葬爱
 光荣
 画心
 火花
 稻香
 小酒窝
 下雨天
 右手边
 安静了
 魔杰座
 你不像她
 边做边爱
 擦肩而过
 我的答铃
 怀念过去
 等一分钟
 放手去爱
 冰河时代
 你的承诺
 自由飞翔
 原谅我一次
 吻的太逼真
 左眼皮跳跳
 做你的爱人
 一定要爱你
 飞向别人的床
 爱上别人的人
 感动天感动地
 心在跳情在烧
 玫瑰花的葬礼
 有没有人告诉你
 即使知道要见面
 爱上你是一个错
 最后一次的温柔
 爱上你是我的错
 怎么会狠心伤害我
 不是因为寂寞才想
 亲爱的那不是爱情
 难道爱一个人有错
 寂寞的时候说爱我