Google Map API应用例子源代码(已修正) - 李华顺的博客 - 博客园2
来源:百度文库 编辑:神马文学网 时间:2024/05/23 23:23:28
Google Map API应用例子源代码
最近项目需要做一个地图的功能,上面要加上一些地标,以方便用户使用,所以今天花时间看了看Google API搞了好一会儿,终于做到满足自已的功能要求了,发布出来给需要的朋友看看。
其实GoogleMap API还是比较好用的,慢慢看GoogleMap API的帮助都可以做出来,我这里主要介绍的是怎么将地标存放起来,再读出来。不然只是一个地图在哪儿没有什么意义。
我这里是用XML来存放的,存下来的数据还是比较简单,你可以根据自已的需要做一些修改就可以了,也可以换成数据库来存放。
Jquery.GoogleMap.js源代码内容
/*-- GoogleMap操作类
-- 作者:李华顺
-- 官方网站:http://www.wathon.com
-- 我的博客:http://huacn.cnblogs.com
-- 演示地址:http://www.wathon.com/opensource/js/GoogleMap/Default.aspx
-- 使用请保存署名
*/
//创建GoogleMap
//panelMap - 显示地图的对象区域
//showScale - 是否显示改变大小的控件 true false
//showLargeControl - 是否显示切换控件 true false
//showTypeControl - 是否显示切换显示类型的按钮
//showZoom - 是否显示左下角的小地图
//zoomSize - 视觉距离
var clickListener ;
var GoogleMapCreate = function(panelMap,showScale,showLargeControl,showTypeControl,showZoom,zoomSize){
myMap = new GMap2(panelMap);
if(showLargeControl)
{
myMap.addControl(new GLargeMapControl());
}
else
{
myMap.addControl(new GSmallMapControl());
}
if(showTypeControl)
{
myMap.addControl(new GMapTypeControl());
}
if(showScale)
{
myMap.addControl(new GScaleControl());
}
if(showZoom)
{
myMap.addControl(new GOverviewMapControl());
}
myMap.enableDoubleClickZoom();
myMap.enableContinuousZoom();
myMap.setCenter(new GLatLng(39.917, 116.397), zoomSize,G_SATELLITE_MAP);
return myMap;
};
//添加事件
var GoogleMapAddEvent = function(myMap,eventName,fun){
clickListener = GEvent.addListener(myMap,eventName,fun);
};
//去除事件
var GoogleMapRemoveEvent = function(myMap,eventName){
GEvent.removeListener(clickListener);
};
//在指定坐标上显示tip提示
var GoogleMapShowTip = function(myMap,point,text){
myMap.openInfoWindow(point,document.createTextNode(text));
};
//在指定坐标上加入地标
var GoogleMapNewMarker = function(myMap,point){
var marker = new GMarker(point);
myMap.addOverlay(marker);
return marker;
};
//根据坐标点取得X坐标
var GoogleMapPointX = function(point){
return point.lat();
};
//根据坐标点取得Y坐标
var GoogleMapPointY = function(point){
return point.lng();
};
服务端部分的源代码内容
/*-- GoogleMap操作类
-- 作者:李华顺
-- 官方网站:http://www.wathon.com
-- 我的博客:http://huacn.cnblogs.com
-- 演示地址:http://www.wathon.com/opensource/js/GoogleMap/Default.aspx
-- 使用请保存署名
*/
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml;
namespace GoogleMap
{
public partial class _Default : System.Web.UI.Page
{
protected string mapName = "";
protected string mapAreaX = "";
protected string mapAreaY = "";
protected void Page_Load(object sender, EventArgs e)
{
initPage();
}
public void initPage()
{
AreaList myArea = new AreaList(Server.MapPath("App_Data\\"));
if (Request["type"] == "savearea")
{
Response.ContentType = "text/xml";
Response.ContentEncoding = System.Text.Encoding.UTF8;
//保存地标
string strName = Request["name"];
string strAreaX = Request["x"];
string strAreaY = Request["y"];
myArea.AppendNew(strName, strAreaX, strAreaY);
WriteResult(Request["name"]);
Response.End();
}
System.Xml.XmlNodeList myNodes = myArea.GetAreaList();
for (int i = 0; i < myNodes.Count; i++)
{
if (i > 0)
{
mapName += ",";
mapAreaX += ",";
mapAreaY += ",";
}
mapName += "'" + myNodes[i].SelectSingleNode("name").InnerText + "'";
mapAreaX += "'" + myNodes[i].SelectSingleNode("x").InnerText + "'";
mapAreaY += "'" + myNodes[i].SelectSingleNode("y").InnerText + "'";
}
}
private void WriteResult(string strValue)
{
string strContent = "";
strContent += "
Response.Write(strContent);
Response.End();
}
}
///
/// AreaList 的摘要说明
///
public class AreaList
{
XmlDocument xmlControl = new XmlDocument();
string strFileName = "\\MapArea.xml";
public AreaList(string appPath)
{
strFileName = appPath + strFileName;
if (!System.IO.File.Exists(strFileName))
{
CreateAreaListFile();
}
xmlControl.Load(strFileName);
}
private void CreateAreaListFile()
{
xmlControl.LoadXml("
xmlControl.Save(strFileName);
}
public void AppendNew(string strName, string strX, string strY)
{
XmlNode xmlNodeLast = xmlControl.SelectSingleNode("//list");
string strXml = "
XmlNode xmlNode = xmlControl.CreateNode(XmlNodeType.Element, "item", "");
xmlNode.InnerXml = strXml;
xmlNodeLast.AppendChild(xmlNode);
xmlControl.Save(strFileName);
}
///
/// 取得旧的列表
/// name,area
/// 地标名,坐标
///
///
public System.Xml.XmlNodeList GetAreaList()
{
System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument();
xmlDoc.Load(strFileName);
System.Xml.XmlNodeList myNodes = xmlDoc.SelectNodes("//list//item");
return myNodes;
}
private string makeCDATA(string strValue)
{
return "";
}
}
}
HTML部分的源代码内容
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="GoogleMap._Default" %>
Google Map API应用例子源代码(已修正) - 李华顺的博客 - 博客园2
Google中国地图API应用-月光博客
研究google的map的api,下面是资料
利用Google Feed API即时展示其它博客的Feed
Google中国地图API应用
Google中国地图API应用
Google Maps API非官方参考(未完成)(http://www.econym.demon.co.uk/googlemaps) - kukukuan的开发专栏 - 博客园
使用google map api來做地址定
Google Talk开放API和源码-月光博客
google map的坐标系统
10分钟学会Google Map API (一) - Google观察者 - ITPUB个...
Google公开部分AJAX应用源代码
Google公开部分AJAX应用源代码
Google map离线版(已测试可用)
关于Google API的学习
关于Google API的学习
新浪博客技巧大全-源代码
新浪博客技巧大全-源代码
Android的源代码结构 - 常青的专栏 - CSDN博客
博客教程-在FLASH图片上写字的源代码
博客教程-在FLASH图片上写字的源代码
x264源代码分析. - duduhaha的专栏 - CSDN博客
SqlServer2000触发器例子 - 峰的日志 - 网易博客
一个工作流引擎的例子 - Windows Workflow Foundation - 博客...