一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Google Maps

 昵稱10525020 2012-10-12
1 Google Maps API 概述

Web API 是通過開放的Internet 傳輸協(xié)議,以標(biāo)準(zhǔn)方式定義并提供可被其他應(yīng)用調(diào)用的服務(wù)內(nèi)容,它通過API 調(diào)用將內(nèi)容進行整合。目前架構(gòu)在Web 平臺上,以HTTP 為基礎(chǔ)的Web API的普及,也降低了應(yīng)用服務(wù)整合的門坎。

Google Maps API 是Google 為開發(fā)者提供的Maps 編程API。它允許開發(fā)者在不必建立自己的地圖服務(wù)器的情況下,將Google Maps 地圖數(shù)據(jù)嵌入到網(wǎng)站之中,從而實現(xiàn)嵌入Google Maps的地圖服務(wù)應(yīng)用,并借助Google Maps 的地圖數(shù)據(jù)為用戶提供位置服務(wù)。

Google Maps API 除了幫助開發(fā)者將地圖嵌入到Web 應(yīng)用中之外,還允許開發(fā)者利用JavaScript 腳本進行應(yīng)用開發(fā)拓展,給地圖添加標(biāo)注和折線及其他地圖圖層覆蓋物,或者響應(yīng)用戶的點擊動作,并顯示包含內(nèi)容信息在內(nèi)的氣泡提示窗口。

通過Google Maps 為開發(fā)者提供的地圖API,可以開發(fā)出各種各樣有趣的地圖Mash-up 應(yīng)用,還可以將不同地圖圖層加載到應(yīng)用中,如衛(wèi)星影像、根據(jù)海拔高度繪制的高山和植被地形圖、街道視圖等,從而幫助開發(fā)者打造個性化的地圖應(yīng)用站點。

2 通過API Key 調(diào)用Google Maps 地圖數(shù)據(jù)

站點在使用Google Maps API 之前,需要申請一個特定的Google Maps 提供的API 鑰匙。當(dāng)然,如果開發(fā)者在本地進行開發(fā)調(diào)試,也可以在不指定鑰匙的情況下使用API 來調(diào)用Google Maps地圖。

目前,來自Google 的地圖數(shù)據(jù)有兩種方式的調(diào)用形式,分別為Google Maps 和Google 中國的本地地圖。由于兩者并不是從同一個數(shù)據(jù)源進行地圖調(diào)用的,所以API Key 的申請地址也有所區(qū)別:

Google Maps API Key 申請地址:http://www.google.com/apis/maps/signup.html

Google 中國本地地圖API Key 申請地址:http://www.google.com/intl/zh-CN/apis/maps/

在申請到API Key 之后,需要在調(diào)用Google 地圖的頁面中包含地圖調(diào)用所需的JavaScript代碼,即頁面需要包含指向地圖數(shù)據(jù)調(diào)用地址的script 標(biāo)記,并加上你申請的API Key。在下面的script 標(biāo)記中,將“Your_API_Key”替換為申請好的API Key 即可,頁面中的script 標(biāo)記應(yīng)該如代碼清單8-2 所示:

代碼清單8-2

<script src="http://maps.google.com/maps?file=api&v=2&key=Your_API_Key"type="text/javascript"></script>   



需要注意的是,根據(jù)Google Maps API 使用條款的約定:使用Google Maps API 建立的地圖應(yīng)用必須可以讓最終用戶免費訪問,同時,開發(fā)者不得替換或遮蓋地圖上的Google 徽標(biāo)或?qū)傩?。目前,在Google Maps API 的支持之下,每個地圖API Key 每天可發(fā)出最多5 萬個地理代碼請求,而且對每天使用地圖API 生成的頁面視圖量沒有限制。Google Maps 的API 可能會定期更新,如果API 不能向后兼容,則需要在轉(zhuǎn)換期間內(nèi)及時更新網(wǎng)站,才能使用新版的API 調(diào)用Google的地圖數(shù)據(jù)。

3 Google Maps 中使用KML

KML 是由Google 制定的Keyhole 標(biāo)記語言(Keyhole Markup Language),它采用XML 標(biāo)準(zhǔn)的語法格式,用于描述和保存地理位置信息(如點、線、圖像、多邊形和模型等內(nèi)容),也可以直接加載到Google Earth 或Google Maps 中顯示。開發(fā)者可以使用KML 與其他Google Earth或Google Maps 的用戶分享Google 地圖上的位置標(biāo)識。

類似于網(wǎng)頁瀏覽器處理HTML 和XML 文件的方式,Google Earth 和Google Maps 會將KML文件根據(jù)其所包含的名稱、屬性等不同的標(biāo)簽來確定地理位置信息在地圖上的顯示方式。包含地點名稱、描述及位置經(jīng)緯坐標(biāo)的簡單的KML 代碼,示例如代碼清單8-3 所示:

代碼清單8-3

 <?xml version="1.0" encoding="UTF-8"?><kml xmlns="http://earth.google.com/kml/2.2"><Placemark><name>Place</name><description> Simple Place Mark.</description><Point> <coordinates>-122.0822035425683,37.42228990140251,0</coordinates></Point></Placemark></kml>
 


除KML 之外,Google 還有一種名為KMZ 的文件格式。KMZ 文件以壓縮包的形式存儲,不僅可以包含KML 格式文本,還可以包含圖片等其他類型的文件。

KML 和KMZ 文件都可以從Google Earth 中直接導(dǎo)出,同時,在Google Maps 中使用KML和KMZ 文件的方式十分簡單:在Google Maps 的搜索欄中輸入KML 文件的地址,然后點擊搜索,即可在地圖上加載對應(yīng)位置的地標(biāo)。

下面我們看一下Google 提供的KML 示例,將下面的KML 地址填入搜索框后點擊搜索:http://services.google.com/earth/kmz/EiffelTower.kmz

就可以在Google Maps 上得到著名的巴黎埃菲爾鐵塔所在的位置(圖無)。

Ruby 的Gem 包GeoRuby(http://georuby./)提供地理信息支持,同時也為KML格式提供導(dǎo)入和導(dǎo)出支持。除此之外,GeoRuby 還可以通過PostGIS 或MySQL 數(shù)據(jù)庫的空間拓展模塊來讀取地理信息數(shù)據(jù),以及讀寫ESRI 的Shape 格式矢量數(shù)據(jù)。GeoRuby 提供的地理信息功能相當(dāng)豐富,在使用命令gem install GeoRuby 安裝后,就可以借助GeoRuby 提供的功能來進行KML 格式的數(shù)據(jù)操作。

4 Google Maps 靜態(tài)地圖

為了方便用戶使用Google Maps 提供的地圖,Google 還提供了一種不必通過JavaScript 調(diào)用來實現(xiàn)地圖圖片調(diào)用的方式,即Google Maps 靜態(tài)地圖。通過靜態(tài)地圖提供的功能,用戶不需要動態(tài)腳本就可以在站點成功添加一幅可以定制的靜態(tài)地圖圖片。

Google Maps 提供了一個靜態(tài)地圖的輔助生成器,地址是:http://gmaps-samples./svn/trunk/simplewizard/makestaticmap.html。

通過在輔助生成器中指定經(jīng)緯度、縮放尺度、圖片大小、地圖類型、標(biāo)識點位置及調(diào)用需要的API_Key 等信息,便可以很輕松地調(diào)用所需要的地圖圖片。比方說,我們輸入地圖圖片的調(diào)用位置New York,并指定返回圖片的大小,就可以得到一幅相應(yīng)的地圖圖片(如圖8.7 所示)。填入用戶申請的Your_API_Key 之后,靜態(tài)地圖圖片對應(yīng)
的訪問地址如下:

http://maps.google.com/staticmap?center=40.757929,-73.985506&markers=40.757929,-73.985506,red&zoom=13&size=500x300&key= Your_API_Key

通過對靜態(tài)地圖的API 調(diào)用,可以使傳統(tǒng)的電子地圖應(yīng)用擴展到更多領(lǐng)域,也為很多簡單的位置服務(wù)、定位,提供了更簡便直接的方法。

當(dāng)然,Google Maps 靜態(tài)地圖也有Ruby 的Gem 包static-gmaps,它幫助你實現(xiàn)靜態(tài)地圖的
API 調(diào)用:http://static-gmaps./可以直接通過命令sudo gem install static-gmaps 來安裝使用。

可以直接通過命令sudo gem install static-gmaps 來安裝使用。

在ASP.NET中使用Google Maps   

http://www.cnblogs.com/lilinqing/archive/2008/07/27/1252770.html

簡介

很多人都知道Google Map,其實,Google為我們自己開發(fā)應(yīng)用程序提供了豐富的API,我們只要具備一些JavaScript的知識,就完全可以利用它們。但是,對于我來說,在ASP.NET頁面中使用JavaScript來調(diào)用Google Map的API有一定難度,尤其是利用服務(wù)器端函數(shù)來動態(tài)畫出Google Map。例如,我想從SQL Server中讀取經(jīng)緯度信息,然后在Google Map中插入一個點。如果熟悉AJAX的話,很快就能得出答案。我們必須用JavaScript調(diào)用ASP.NET服務(wù)器端函數(shù),利用得到的數(shù)據(jù)來繪制Google Map。簡單吧?其實,對于我來說并非如此。因此,我決定開發(fā)一個用戶控件來處理JavaScript代碼,這樣,我就能集中精力于服務(wù)器端函數(shù)了。

特點

1.不需要JavaScript知識就能繪制Google Maps,只需在相應(yīng)頁面加入自定義控件即可。

2.使用AJAX調(diào)用來獲取服務(wù)器端數(shù)據(jù)。

3.提供最優(yōu)越的性能表現(xiàn)。

如何使用

在這里,我并不想解釋我是如何創(chuàng)建該控件的。我只要教你如何使用它。

系統(tǒng)需求

1.Visual Studio 2005或更高版本

2.Microsoft ASP.NET AJAX Extensions支持

3.Internet Explorer 7.0或Mozilla Firefox 2.x

你只需完成以下幾步:

1.新建一個ASP.NET AJAX-Enabled Website。

2.將源代碼中App_Code文件夾、GoogleMapForASPNet.ascx、GoogleMapForASPNet.ascx.cs,GService.asmx復(fù)制到你的ASP.NET應(yīng)用程序下。

3.保證你的網(wǎng)站支持AJAX技術(shù)。

4.打開Default.aspx(或任何你想加入Google Map的位置),將該自定義控件拖放至相應(yīng)位置并編譯,這樣就實現(xiàn)了最簡單的帶有Google Map的ASP.NET網(wǎng)頁。

現(xiàn)在我們來為Google Map加一些標(biāo)注點。在Page_Load()事件中加入一些代碼。

向Google Map控件傳參

注意:使用時必須首先設(shè)定你的Google Maps API key(可以從Google免費獲?。?/span>

以下是代碼:

if (!IsPostBack)
{
  GoogleMapForASPNet1.GoogleMapObject.APIKey = "<YourGoogleMapKey>"; //定義你的Google Maps API key

  GoogleMapForASPNet1.GoogleMapObject.APIVersion = "2"; //選擇Google Maps API版本

  GoogleMapForASPNet1.GoogleMapObject.Width = "800px";
  GoogleMapForASPNet1.GoogleMapObject.Height = "600px"; //定義Google Map控件的大小

  GoogleMapForASPNet1.GoogleMapObject.ZoomLevel = 14; //定義縮放級別,默認(rèn)值為3

  GoogleMapForASPNet1.GoogleMapObject.CenterPoint = new GooglePoint("CenterPoint", 31.19, 120.37); //定義地圖中心位置

  GoogleMapForASPNet1.GoogleMapObject.Points.Add(new GooglePoint("1", 31.19, 120.37)); //在指定經(jīng)緯度定義新的地圖標(biāo)注點

}

這樣,就能自定義地圖加載位置和標(biāo)注點了。

自定義標(biāo)注點圖標(biāo)

該控件支持自定義標(biāo)注點圖標(biāo)。首先,將圖標(biāo)文件復(fù)制到你的網(wǎng)站目錄下,接著,使用以下賦值語句:

  GP.IconImage = "icons/pushpin-blue.png";

還可以為標(biāo)注點添加注釋,當(dāng)用戶單擊標(biāo)注點時,能看到注釋內(nèi)容。代碼:

  GP.InfoHTML = "這是一個標(biāo)注點";

至此,已經(jīng)介紹了使用Google Maps Control的基本內(nèi)容。接下來,我們來看一下它的高級功能。例如,當(dāng)用戶進行某些操作時移動標(biāo)注點。

創(chuàng)建交互式地圖

 

該控件支持用戶創(chuàng)建交互式地圖。下面這個例子是,當(dāng)用戶單擊按鈕時,移動標(biāo)注點。以下是使用方法:

1.插入一個Button控件,在它的Click事件中加入以下代碼:

  protected void Button1_Click(object sender, EventArgs e)
  {
  GoogleMapForASPNet1.GoogleMapObject.Points["1"].Latitude += 0.003;
  GoogleMapForASPNet1.GoogleMapObject.Points["1"].Longitude += 0.003;
  }

  可以自主控制經(jīng)緯度的增量。

2.運行該頁面,你將發(fā)現(xiàn)整個頁面都會被刷新或回傳。為了避免這種現(xiàn)象,我們只需要把這個Button控件加入UpdatePanel控件中。

3.重新運行該頁面,可看到該頁面已經(jīng)一切正常了。

自動更新和GPS導(dǎo)航

 

我們可以使用AJAX框架中的Timer控件來實現(xiàn)這一功能。在Timer_Tick()事件中,可以定義標(biāo)注點新的經(jīng)度和緯度。這樣,在指定的時間間隔后,地圖上所有的標(biāo)注點都會自動更新。你也可以連接到GPS設(shè)備,構(gòu)成一個GPS導(dǎo)航系統(tǒng)。

使用Google Maps Control繪制折線

 

1.首先,添加該折線的各個端點。代碼如下:

  GooglePoint GP1 = new GooglePoint();
  GP1.ID = "GP1";
  GP1.Latitude = 31.19; //定義標(biāo)注點緯度
  GP1.Longitude = 120.37; //定義標(biāo)注點緯度
  GP1.InfoHTML = "這是標(biāo)注點1"; //可選注釋項
  GoogleMapForASPNet1.GoogleMapObject.Points.Add(GP1); //在地圖上添加這個點

  GooglePoint GP2 = new GooglePoint();
  GP2.ID = "GP2";
  GP2.Latitude = 31.19001;
  GP2.Longitude = 120.37001;
  GP2.InfoHTML = "這是標(biāo)注點2";
  GoogleMapForASPNet1.GoogleMapObject.Points.Add(GP2);

  GooglePoint GP3 = new GooglePoint();
  GP3.ID = "GP3";
  GP3.Latitude = 31.19003;
  GP3.Longitude = 120.36998;
  GP3.InfoHTML = "這是標(biāo)注點3";
  GoogleMapForASPNet1.GoogleMapObject.Points.Add(GP3);

2.利用這些點繪制折線

  GooglePolyline PL1 = new GooglePolyline(); //定義折線
  PL1.ID = "PL1";
  PL1.ColorCode = "#0000FF"; //定義折線顏色
  PL1.Width = 5; //定義折線寬度

  PL1.Points.Add(GP1); //加入這些點(繪制折線)
  PL1.Points.Add(GP2);
  PL1.Points.Add(GP3);

3.將折線加入Google Maps Control中

  GoogleMapForASPNet1.GoogleMapObject.Polylines.Add(PL1);

使用Google Maps Control繪制多邊形

 

1.按照上面的方法加入多邊形各頂點。這里不再贅述。

2.使用這些點創(chuàng)建一個多邊形。代碼如下:

  GooglePolygon PG1 = new GooglePolygon(); //定義多邊形
  PG1.ID = "PG1";
  PG1.FillColor = "#0000FF"; //定義多邊形各條邊的顏色
  PG1.FillOpacity = 0.4;

  PG1.Points.Add(GP1); //將上面創(chuàng)建的各點加入多邊形(作為頂點)
  PG1.Points.Add(GP2);
  PG1.Points.Add(GP3);
  ……………………………………

  PG1.Points.Add(GPn); //第n個頂點

3.將多邊形加入Google Maps Control中

  GoogleMapForASPNet1.GoogleMapObject.Polygons.Add(PG1);


信息來源:
http://blog.csdn.net/eastsea/archive/2009/03/10/3975726.aspx

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    欧美人妻免费一区二区三区| 亚洲欧美日韩色图七区| 欧美熟妇喷浆一区二区| 国产av一区二区三区久久不卡| 尹人大香蕉一级片免费看| 成人国产激情福利久久| 丝袜诱惑一区二区三区| 年轻女房东2中文字幕| 91熟女大屁股偷偷对白| 精品久久av一二三区| 亚洲高清欧美中文字幕| 国产亚洲精品久久99| 亚洲欧美日本国产有色| 午夜视频成人在线观看| 香蕉久久夜色精品国产尤物| 亚洲精品欧美精品一区三区| 国产精品日韩精品一区| 成人午夜爽爽爽免费视频| 中文字幕日韩欧美一区| 国产一区二区精品丝袜| 国产一区二区三区成人精品| 亚洲超碰成人天堂涩涩| 午夜福利视频日本一区| 国产无摭挡又爽又色又刺激| 日韩aa一区二区三区| 欧美一区日韩一区日韩一区| 日本精品免费在线观看| 日本午夜一本久久久综合| 男人和女人干逼的视频| 亚洲熟女乱色一区二区三区 | 日韩精品一区二区三区射精| 性欧美唯美尤物另类视频| 日韩免费午夜福利视频| 少妇激情在线免费观看| 在线观看免费视频你懂的| 国产精品一区二区三区日韩av | 一区二区三区亚洲天堂| 四季精品人妻av一区二区三区| 99免费人成看国产片| 久久国产亚洲精品成人| 青青操成人免费在线视频|