如何用Google离线API调用离线地图
- 格式:docx
- 大小:1.23 MB
- 文档页数:8
开发人员指南地图基础知识1简介2Google 地图的“Hello, World”2加载Google 地图API2地图DOM 元素2GMap2 - 基本对象2初始化地图2加载地图3经度和纬度4地图属性5地图交互6信息窗口简介任何Google 地图API 应用程序中的基础元素都是“地图”本身。
本文档讨论GMap2基础对象的用法和地图操作的基础知识。
Google 地图的“Hello, World”开始学习Google 地图API 最简单的方式是看一个简单的示例。
下面的网页显示以北京的故宫博物院为中心的500x300 的地图。
<!DOCTYPE html "-//W3C//DTD XHTML 1.0 Strict//EN" "/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="/1999/xhtml"><head><meta http-equiv="content-type"content="text/html; charset=utf-8"/><title>Google Maps JavaScript API Example</title><scriptsrc="/maps?file=api&v=2&am p;key=abcdefg&sensor=true_or_false"type="text/javascript"></script><script type="text/javascript">function initialize(){if(GBrowserIsCompatible()){var map=new GMap2(document.getElementById("map_canvas"));map.setCenter(new GLatLng(39.9493,116.3975), 13);}}</script></head><body onload="initialize()"onunload="GUnload()"><div id="map_canvas"style="width:500px;height: 300px"></div></body></html>您可以查看此示例及下载、编辑和调试该示例,但必须将该文件中的密钥替换为您自己的Google 地图API 密钥。
如何采用离线的 Google Map API 加载离线谷歌地图的方法注:文档中所提到的“GoogleMapAPIV3.rar”附件,请到水经注软件论坛下载。
一、下载示例数据这里以《水经注万能地图下载器》为你说明如何下载谷歌卫星地图。
安装万能地图下载器以后,软件启动时会显示选择在线地图的对话框,请选择“卫星.谷歌”即会显示在线的谷歌卫星地图窗口,如下图所示。
由于只是为了作演示说明如何用 Google Map 离线 API 加载谷歌地图的方法,这里我们只需要框选中国范围,即点击工具栏上的“框选下载区域”,然后在视图中绘制选择范围,如下图所示。
下载即可,如下图所示。
点击“确定”按钮,开始下载卫星地图数据。
下载完成后导出瓦片数据,选择导出类型为“瓦片:Google Map”,保存路为“D:\Test”目录,如下图所示。
在对话框中点击“输出”按钮导出Google Map瓦片,如下图所示。
二、地图引擎部署第一步:将附件中的“GoogleMapAPIV3.rar”下载后解压到“D:\Test”目录。
第二步:将“D:\Test”目录中的“中国_GoogleMapTiles”重命名为“data”,如下图所示。
第三步:在浏览器中打开“D:\Test\GoogleMapAPIV3\Example_GoogleMapAPI.html”,如果操作无误,将会显示离线的卫星地图,如下图所示。
以上,即是如何用 Google Map 离线 API加载谷歌地图的方法,你可以根据实际需求对“D:\Test\GoogleMapAPIV3\Example_GoogleMapAPI.html”文件进行进一步开发。
注:文档中所提到的“GoogleMapAPIV3.rar”附件,请到水经注软件论坛下载。
下面是赠送的中秋节演讲辞,不需要的朋友可以下载后编辑删除!!!谢谢中秋佳节演讲词推荐中秋,怀一颗感恩之心》老师们,同学们:秋浓了,月圆了,又一个中秋要到了!本周日,农历的八月十五,我国的传统节日——中秋节。
如何在Cesium中加载谷歌离线影像数据
Cesium是一个用于显示三维地球和地图的开源js库。
它可以用来显示海量三维模型数据、影像数据、地形高程数据、矢量数据等等,本文将介绍利用91卫图助手下载谷歌卫星影像,利用Apache Web 服务器发布,并在Cesium中加载显示。
•91卫图助手下载器
1、启动91卫图助手,打开软件后,拉框选择范围,双击弹出下
载对话框
2、在下载对话框中我们选择要下载的级别,级别越高,清晰度越
高,文件越大,按自己需要选择即可
3、在下载对话框中,点击导出设置,选择导出方式为:导出TMS 瓦片,如下所示
4、点击确定后,开始下载,下载完成后的结果如下所示
5. 然后我们可以在Apache Web服务器中发布该服务
6、在Cesium中加载影像图层,代码如下:
7、在浏览器中打开Cesium,显示效果如下:
的全球数据,然后再下载高级别的局部范围的数据,然后拷贝到同一个文件夹下发布,这样显示效果更佳
2.本软件还支持导出Cesium地形数据,详见高程下载中如何在
Cesium中加载谷歌地形数据章节。
这是我自己写的一个google 最新的基于map api v2的地图导航功能,本人的机器是索尼爱立信 mt11i,系统为2.3.3亲测完全可用,google map api v2许可码请自己去谷歌申请,你过你的测试系统api版本11(android3.0)以上的话,注意两处map = ((SupportMapFragment) (this.getSupportFragmentManager().findFragmentById(R.id.map))).getMap();和布局文件中的support均可以省略support欢迎加群讨论技术方面的问题:杭州android开发讨论群(216045581)注意新建项目之前需要安装google play services然后导入通过上图方法导入sdk包下面的一个包:\adt-bundle-windows-x86\sdk\extras\google\google_play_services\libproje ct\google-play-services_libAndroidManifest.xml<?xml version="1.0"encoding="utf-8"?><manifest xmlns:android="/apk/res/android"package="com.example.v2_test"android:versionCode="1"android:versionName="1.0"><uses-sdkandroid:minSdkVersion="8"android:targetSdkVersion="17"/><permissionandroid:name="com.example.v2_test.permission.MAPS_RECEIVE"android:protectionLevel="signature"/><uses-permission android:name="android.permission.INTERNET"/> <uses-permissionandroid:name="com.example.v2_test.permission.MAPS_RECEIVE"/> <uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permissionandroid:name="com.google.android.providers.gsf.permission.READ_GSERVICE S"/><uses-permissionandroid:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-permissionandroid:name="android.permission.ACCESS_MOCK_LOCATION"/><uses-featureandroid:glEsVersion="0x00020000"android:required="true"/><applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme"><activityandroid:name="com.example.v2_test.MainActivity"android:label="@string/app_name"><intent-filter><action android:name="android.intent.action.MAIN"/><category android:name="UNCHER" /></intent-filter></activity><meta-dataandroid:name="com.google.android.maps.v2.API_KEY"android:value="AIzaSyDmrnUUl_zWzgimKKeR5t3ZiinvouSWO8E"/> </application></manifest>布局文件<RelativeLayoutxmlns:android="/apk/res/android"xmlns:map="/apk/res-auto"android:layout_width="match_parent"android:layout_height="match_parent"><fragmentandroid:id="@+id/map"android:layout_width="match_parent"android:layout_height="match_parent"class="com.google.android.gms.maps.SupportMapFragment"/> <ImageButtonandroid:id="@+id/local"android:background="@null"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:layout_alignParentRight="true"android:layout_marginRight="10dp"/></RelativeLayout>菜单弹出框布局文件<?xml version="1.0"encoding="utf-8"?><TableLayout xmlns:android="/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="起始位置:"android:textColor="@android:color/white"android:textSize="18dp"></TextView><EditTextandroid:id="@+id/start"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="18dp"android:text="我的位置"></EditText><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:textColor="@android:color/white"android:textSize="18dp"android:text="目的地:"></TextView><EditTextandroid:id="@+id/end"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="18dp"android:text=""></EditText></TableLayout>这个是activitypackage com.example.v2_test;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.List;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpGet;import org.apache.http.client.methods.HttpPost;import org.apache.http.impl.client.DefaultHttpClient; import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.GoogleMap;import com.google.android.gms.maps.SupportMapFragment; import com.google.android.gms.maps.model.CameraPosition; import tLng;import com.google.android.gms.maps.model.Marker;import com.google.android.gms.maps.model.MarkerOptions; import com.google.android.gms.maps.model.Polyline;import com.google.android.gms.maps.model.PolylineOptions; import android.app.AlertDialog;import android.app.ProgressDialog;import android.content.DialogInterface;import android.content.DialogInterface.OnClickListener; import android.graphics.Color;import android.location.Criteria;import android.location.Location;import android.location.LocationListener;import android.location.LocationManager;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.v4.app.FragmentActivity;import android.util.Log;import youtInflater;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.EditText;import android.widget.ImageButton;public class MainActivity extends FragmentActivity {List<LatLng> list;Polyline polyline;private Location location;private CameraPosition cameraPosition;private GoogleMap map;String start = "";String end = "";double lat = 0.0;double lng = 0.0;double endlat = 0.0;double endlng = 0.0;LocationManager locationManager;ImageButton local;LocationListener llistener;Marker marker;private ProgressDialog progressdialog;private Handler mHandler = new Handler() {public void handleMessage(Message msg) {switch (msg.what) {case 1:progressdialog.dismiss();if(polyline!=null){polyline.remove();map.clear();markMysition();}map.addMarker(new MarkerOptions().position(new LatLng(endlat, endlng)).title(MainActivity.this.getLocation(endlat, endlng)));LatLng last = null;for (int i = 0; i < list.size() - 1; i++) {LatLng src = list.get(i);LatLng dest = list.get(i + 1);last = dest;polyline = map.addPolyline(new PolylineOptions().add(new LatLng(titude, src.longitude),new LatLng(titude,dest.longitude)).width(4).color(Color.GREEN));}break;}};};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);local = (ImageButton) findViewById(R.id.local);local.setImageResource(R.drawable.ww);// 点击按钮视图回到我的位置local.setOnClickListener(new android.view.View.OnClickListener() {@Overridepublic void onClick(View v) {MainActivity.this.setCameraPosition();}});map = ((SupportMapFragment) (this.getSupportFragmentManager() .findFragmentById(R.id.map))).getMap();this.getPointLocation();MainActivity.this.setCameraPosition();}// 标记我的位置void markMysition() {marker=map.addMarker(new MarkerOptions().position(new LatLng(lat, lng)).title(this.getLocation(lat, lng)).snippet("我的位置"));}// 获取我的位置private void getPointLocation() {Criteria criteria = new Criteria();// ACCURACY_FINE 较高精确度criteria.setAccuracy(Criteria.ACCURACY_FINE);criteria.setAltitudeRequired(false);criteria.setBearingRequired(false);criteria.setCostAllowed(true);criteria.setPowerRequirement(Criteria.POWER_LOW);locationManager = (LocationManager)getSystemService(LOCATION_SERVICE);String provider = locationManager.getBestProvider(criteria, true);Log.d("provider", provider);llistener = new LocationListener() {@Overridepublic void onLocationChanged(Location location) {/*if(marker!=null){marker.remove();}*/lat = location.getLatitude();lng = location.getLongitude();// MainActivity.this.markMysition();}@Overridepublic void onProviderDisabled(String provider) {Log.i("onProviderDisabled", "come in");}@Overridepublic void onProviderEnabled(String provider) {Log.i("onProviderEnabled", "come in");}@Overridepublic void onStatusChanged(String provider, int status,Bundle extras) {}};location = locationManager.getLastKnownLocation(locationManager.GPS_PROVIDER);locationManager.requestLocationUpdates(provider, 3000, (float) 10.0,llistener);updateLocation();MainActivity.this.markMysition();MainActivity.this.setCameraPosition();}// 位置更新private void updateLocation() {if (location != null) {lat = location.getLatitude();lng = location.getLongitude();}}// 将视图镜头定位在我的位置public void setCameraPosition() {// 获取视图镜头cameraPosition = new CameraPosition.Builder().target(new LatLng(lat, lng)) // Sets the center of the map to.zoom(17) // 缩放比例.bearing(0) // Sets the orientation of the camera to east.tilt(20) // Sets the tilt of the camera to 30 degrees.build(); // Creates a CameraPosition from the builder map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosit ion));}// 菜单public boolean onCreateOptionsMenu(Menu menu) {menu.add(0, Menu.FIRST + 1, 1, "获取路线");menu.add(0, Menu.FIRST + 2, 2, "退出");return true;}// 菜单响应public boolean onOptionsItemSelected(MenuItem item) {switch (item.getItemId()) {case Menu.FIRST + 1:// 定义输入框界面editpoint();break;case Menu.FIRST + 2:locationManager.removeUpdates(llistener);this.finish();}return true;}// 获取物理位置private String getLocation(double lat, double lng) {String address = "";String resultString = "";String urlString = String.format("/maps/api/geocode/json?latlng="+ lat + "," + lng + "&sensor=true&language=zh-CN");Log.i("URL", urlString);HttpClient client = new DefaultHttpClient();HttpGet get = new HttpGet(urlString);try {HttpResponse response = client.execute(get);HttpEntity entity = response.getEntity();BufferedReader buffReader = new BufferedReader(new InputStreamReader(entity.getContent()));StringBuffer strBuff = new StringBuffer();String result = null;while ((result = buffReader.readLine()) != null) {strBuff.append(result);}resultString = strBuff.toString();// 解析josn数据,获得物理地址if (resultString != null && resultString.length() > 0) {JSONObject jsonobject = new JSONObject(resultString);JSONArray jsonArray = newJSONArray(jsonobject.get("results").toString());resultString = "";for (int i = 0; i < jsonArray.length(); i++) {resultString = jsonArray.getJSONObject(i).getString("formatted_address");address += resultString;}}} catch (Exception e) {} finally {get.abort();client = null;}return address;}// 通过输入信息解析json获取路线private void getDirection(String start, String endposition) { String DresultString = "";String Durl ="/maps/api/directions/json?origin="+ lat + "," + lng + "&destination=" + endlat + "," + endlng+ "&sensor=true&mode=driving";HttpClient Dclient = new DefaultHttpClient();HttpGet Dget = new HttpGet(Durl);HttpResponse response;try {response = Dclient.execute(Dget);HttpEntity Dentity = response.getEntity();BufferedReader DbuffReader = new BufferedReader(new InputStreamReader(Dentity.getContent()));StringBuffer DstrBuff = new StringBuffer();String Dresult = null;while ((Dresult = DbuffReader.readLine()) != null) {DstrBuff.append(Dresult);}DresultString = DstrBuff.toString();} catch (Exception e) {}try {final JSONObject jsonObject = new JSONObject(DresultString);JSONArray routeArray = jsonObject.getJSONArray("routes");JSONObject routes = routeArray.getJSONObject(0);JSONObject overviewPolylines = routes.getJSONObject("overview_polyline");String encodedString = overviewPolylines.getString("points");Log.d("test: ", encodedString);list = decodePoly(encodedString);} catch (JSONException e) {e.printStackTrace();} catch (ArrayIndexOutOfBoundsException e) {System.err.println("Caught ArrayIndexOutOfBoundsException: "+ e.getMessage());}}// 填写起始地点以得到路线导航private void editpoint() {LayoutInflater factory = LayoutInflater.from(MainActivity.this);// 获得自定义对话框final View view = factory.inflate(yout.getdirections, null);AlertDialog navigate = new AlertDialog.Builder(MainActivity.this) .setIcon(android.R.drawable.ic_menu_edit).setTitle("获取路线").setView(view).setPositiveButton("确定", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.dismiss();EditText st = (EditText)view.findViewById(R.id.start);EditText en = (EditText)view.findViewById(R.id.end);start = st.getText().toString();end = en.getText().toString();progressdialog =ProgressDialog.show(MainActivity.this,"正在获取路线", "请稍等……", true);new Thread(new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stubgetlatlng(end);getDirection("我的位置", end);mHandler.sendEmptyMessage(0);mHandler.sendEmptyMessage(1);}}).start();}}).setNegativeButton("取消", null).create();navigate.show();}// 根据地理名称获得起始点和终点的经纬度private void getlatlng(String end) {StringBuilder stringBuilder = new StringBuilder();try {HttpPost httppost = new HttpPost("/maps/api/geocode/json?address="+ end + "&sensor=false");HttpClient client = new DefaultHttpClient();HttpResponse response;stringBuilder = new StringBuilder();response = client.execute(httppost);HttpEntity entity = response.getEntity();InputStream stream = entity.getContent();int b;while ((b = stream.read()) != -1) {stringBuilder.append((char) b);}} catch (ClientProtocolException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}JSONObject jsonObject = new JSONObject();try {jsonObject = new JSONObject(stringBuilder.toString());} catch (JSONException e) {// TODO Auto-generated catch blocke.printStackTrace();}try {endlng = ((JSONArray)jsonObject.get("results")).getJSONObject(0).getJSONObject("geometry").getJSONObject("location").getDouble("lng");endlat = ((JSONArray)jsonObject.get("results")).getJSONObject(0).getJSONObject("geometry").getJSONObject("location").getDouble("lat");} catch (Exception e) {e.printStackTrace();}}// 解析json文件里面的polyline下的poly得出导航上面路径的点private List<LatLng> decodePoly(String encoded) {List<LatLng> poly = new ArrayList<LatLng>();int index = 0, len = encoded.length();int lat = 0, lng = 0;while (index < len) {int b, shift = 0, result = 0;do {b = encoded.charAt(index++) - 63;result |= (b & 0x1f) << shift;shift += 5;} while (b >= 0x20);int dlat = ((result & 1) != 0 ? ~(result >> 1) : (result >> 1));lat += dlat;shift = 0;result = 0;do {b = encoded.charAt(index++) - 63;result |= (b & 0x1f) << shift;shift += 5;} while (b >= 0x20);int dlng = ((result & 1) != 0 ? ~(result >> 1) : (result >> 1));lng += dlng;LatLng p = new LatLng((lat / 1E5), lng / 1E5);poly.add(p);}return poly;}}。
水经注离线谷歌卫星地图加载服务中间件调用示例ForGoogle API1.说明水经注离线谷歌卫星地图加载服务中间件可利用离线地图的.dat文件在本地建立服务端,并生成影像、标签、高程等服务地址,可以在Goo gle API中直接调用该服务地址,并将请求到的服务资源显示在前端,当请求的地图资源不存在可通过网络直接下载缺失的地图,并储存在.dat文件中。
2.实现2.1准备GoogleMa pAPIV3下载GoogleMap APIV3.rar。
在其目录下新建一个ht ml文件“RiverM apSer verSa mpleFor Google API.html”,如下图。
利用记事本打开“RiverM apSer verSa mpleFor Google API.html”并进行编辑,具体内容如下。
<!DOCTYP E html><html><head><meta http-equiv="Conten t-Type" conten t="text/html; charse t=utf-8" /><title>RiverM apSer verSa mpleFor Google API</title><link href="mapfil es/css/defaul t.css" rel="styles heet" type="text/css" /><script type="text/javasc ript" src="mapapi.js"></script><script>functi on tlen(len, mystr){mystr= String(mystr);var num = len - mystr.length;for (var i = 0; i <= num; i++){mystr= "0" + mystr;}return mystr;};functi on CoordM apTyp e(tileSi ze) {this.tileSi ze = tileSi ze;}CoordM apTyp e.protot ype.getTil e = functi on(coord, zoom, ownerD ocume nt) { var div = ownerD ocume nt.create Eleme nt('DIV');var ymax = 1 << zoom;var y = coord.y;y = tlen(5,y);var x = tlen(5,coord.x);zoom = tlen(1,zoom+1);div.innerH TML = y + "," + x + "," + zoom;div.style.width= this.tileSi ze.width+ 'px';div.style.height = this.tileSi ze.height + 'px';div.style.fontSi ze = '10';div.style.border Style = 'solid';div.style.border Width = '1px';div.style.border Color = '#AAAAAA';return div;};functi on LocalM apTyp e() {}LocalM apTyp e.protot ype.tileSi ze = new google.maps.Size(256, 256);LocalM apTyp e.protot ype.maxZoo m = 20;LocalM apTyp e.protot ype.minZoo m = 0;LocalM apTyp e.proto = "本地";LocalM apTyp e.prototype.alt = "显示本地地图";LocalM apTyp e.protot ype.getTil e = functi on(coord, zoom, ownerD ocume nt) { var img = ownerD ocume nt.create Eleme nt("img");img.style.width= this.tileSi ze.width+ "px";img.style.height = this.tileSi ze.height + "px";var ymax = 1 << zoom;var y = coord.y;y = tlen(5,y);var x = tlen(5,coord.x);zoom = tlen(1,zoom+1);var strURL = "http://127.0.0.1:1002/getDef inedI mage?" + "x=" + x + "&y=" + y + "&z=" + zoom;img.src = strURL;return img;};var localM apTyp e = new LocalM apTyp e();functi on initia lize() {var myLatl ng = new googltLng(30, 103);var myOpti ons = {center: myLatl ng,zoom: 4,street ViewC ontro l: false,mapTyp eCont rolOp tions: {m apTyp eIds: ["local", google.maps.MapTyp eId.ROADMA P] }};var map = new google.maps.Map(docume nt.getEle mentB yId("map_ca nvas"), myOpti ons);map.mapTyp es.set('local', localM apTyp e);map.setMap TypeI d('local');map.overla yMapT ypes.insert At(0, new CoordM apTyp e(new google.maps.Size(256, 256)));}</script></head><body onLoad="initia lize()"><div id="map_ca nvas" style="width: 640px; height: 480px;"></div></body></html>其中【strURL=”http://localh ost:1002/getDef inedI mage ?”】表示请求的是影像、地图、地形、标签、影像+标签、影像+地图、影像+地形或Dem。
GoogleMapApi⾕歌地图接⼝整理⼀:基本知识:1. 使⽤⾕歌地图 API 的第⼀步就是要注册⼀个 API 密钥,需要注重⼀下两点:1.假如使⽤ API 的页⾯还没有发布,只是在本地调试,可以不⽤密钥,随便⽤个字符串代替就可以了。
2.API 密钥只对⽹站⽬录或者域有效。
对不同域的⽹页,需要⽤这些域分别注册不同的密钥2.页⾯引⽤javascript⽂件<script src="/maps?file=api&hl=zh-CN&v=2&key=abcdefg" type="text/javascript"></script>:也可以⽤,假如你需要在地图上显⽰⼤陆以外的具体地图,就⽤ 2.file=api 这个是请求API 的JS ⽂件⽤的,固定的格式。
3.hl=zh-CN这个是在设定地图上除了地图图⽚以外的诸如控件名称、版权声明、使⽤提⽰等所需要显⽰⽂本的语⾔版本时候⽤的,假如没有指定这个参数就使⽤ API 的默认值,对 来说,默认是中⽂简体 默认的是英⽂。
4. v=2这个是⽤来指定需要导⼊的 API 类库的版本号,可以有四种设定⽅式:v=2.s 稳定版本,更新最慢,但是最可靠;v=2 当前版本(只⽤主版本号),更新速度和可靠性介于 s 和 x 之间v=2.x 最新版本,更新最快,包括最新功能,可能没有当前版本可靠;v=2.76 指定具体版本。
不建议使⽤。
注:⽬前⾕歌地图 API的主版本号是2,当API升级时旧版本只能继续使⽤⼀个⽉,所以要及时更改主版本号,版本号改变会在Google Code和Maps API讨论组发布相关信息5.key=abcdefg这个是设定你注册的 API 密钥.⼆:核⼼类:google地图API主要包括:地图类(GMap2)、标记类(GMarker)、标记选项类(GMarkerOptions)、折线类(GPolyline)、经纬度(GLatLng)、命名空间(GEvent)、坐标类(GPoint)、控件的⼤⼩类GSize、 interface(GControl)、地图类型类(GMapType)、地图上⾯的图标类(GIcon)、窗体类(GInfoWindow)、窗体选项类 GInfoWindowOptions)、接⼝GOverlay、枚举GMapPane等等注:标记和折线都是地图的覆盖物1.GMap2:地图类,下⾯实例化⼀张地图:var map= new GMap2(container: DOM_Div,opts: Options);构造函数的参数如下:参数是否必要值类型定义container 是 DOM_Div DOM元素,是个Divopts 可选 Options 构造函数选项GMap2包含的⽅法:1.设置状态的⽅法:enableDragging():设置地图可以被拖动。
如何在内网离线发布全国谷歌高清卫星影像地图瓦片1.概述对于GIS行业从业者来讲,对于地图发布可能并不陌生。
其实所谓地图发布,就是指在互联网或局域网服务器中,通过IIS、Apache或ArcGIS Server等系统服务为地图瓦片分配唯一URL地址的过程。
地图发布后可以结合百度离线API或谷歌离线API等开源平台方便地部署百度离线地图、谷歌离线地图、三维离线地球并进行离线GIS系统开发等。
IIS发布从客户在水经注软件使用的反馈我们了解到,大家习惯于将谷歌卫星影像地图导出为ArcGIS Server 瓦片进行发布,然后用ArcGIS 客户端或其它GIS平台进行开发调用。
以上方式没有错,但从我们的项目开发经验来看,这种方式应用于范围较小的区域还是可以接受的,但如果范围大于一省,比如全国甚至全球,这种方式就很不适用了。
我们曾经为一个客户导出了一个省的瓦片,瓦片文件个数上亿张,几周也没能把文件拷贝完,安装部署极为不便。
ArcGIS Server 发布那么不将谷歌卫星影像导出为瓦片,还有其它更好的方法吗?答案当然是肯定的,正是因为我们有了上面所述痛点,后来才研发了《水经注地图发布服务中间件》产品。
该中间件可以直接离线发布全国谷歌卫星影像,不需要IIS、Apache或ArcGIS Server 服务支持,也不需要任何数据支持,效率远高于MBTile瓦片数据库,它可以快速地为你构建一个离线的谷歌地球服务器。
中间件界面这里,我们就对如何使用《水经注地图发布服务中间件》,并在内网离线离发布全国7.01TB谷歌高清影像进行详细说明。
2.全国谷歌高清卫星影像地图数据准备水经注现有全国谷歌高清卫星影像地图数据1-19级7.01TB,该数据用一个8T硬盘就能存储。
在地图发布之前,可以用《水经注万地图下载器》对其进行离线浏览,先检查全国卫星影像数据的覆盖范围、数据的完整性和影像的清晰度等。
具体方法请参阅:如何离线浏览全国7137GB海量谷歌卫星离线影像?https:///s/PSM7OSXLyRxVRqE-Nr-GqA全国卫星影像覆盖范围另外,还可以随时将指定区域的影像数据导出为大图、手机离线包或瓦片等,具体方法请参阅:如何从全国7.01TB海量谷歌卫星离线地图中导出北京市的卫星影像https:///s/4Ezv6SMdsv6CoAV-Ce4raA离线导出北京卫星影像如果你现在没有全国谷歌高清卫星影像地图数据,那么也可以用《水经注万能地图下载器》下载,具体方法请参阅:如何一次性下载全国谷歌卫星影像地图数据https:///s/_W-4_K5lNJ7tjS59X_I94w全国谷歌卫星影像数据文件3.全国谷歌高清卫星影像地图数据发布全国谷歌高清卫星影像地图数据准备好之后,需要下载安装水经注地图发布服务中间件。
如何发布谷歌离线地图一键离线地图发布(工具软件下载)使用教程百度离线地图发布教程手机离线地图发布——Oruxmaps制作发布高清卫星离线地图谷歌离线地图发布API解析说明:1. 当前版本支持谷歌电子/卫星地图瓦片、高德地图、阿里云地图、超图、腾讯地图等(只需下载该地图源的瓦片拷贝到指定目录即可);2. 效果预览演示地址:/google后台编辑体验地址:/google/login.html可随意在后台添加/修改标注,账号密码均为:admin(只下载了部分谷歌地图瓦片作为离线样本,某些地方无法显示视为正常,包含全国4-12级,部分成都13-16级)3. 我们可以提供离线发布源代码(价格:2000RMB),技术支持,助你一分钟快速开发部署离线地图服务器。
在BIGEMAP下载器中下载以上(后面有介绍如何下载瓦片)放在指定目录下就可以使用浏览器查看自己的离线地图啦,还可在后台随意添加图文、点、线、面、图文等标注,如下图:谷歌电子地图预览:谷歌卫星地图预览:高德地图预览可以在右上角添加多种地图,每一种地图加载相应目录的离线地图瓦片。
针对有离线发布需求的客户我们将提供离线发布压缩包文件下面介绍离线发布具体步骤:一、解压文件,安装xampp5.2.2集成包二、安装完成后在以下控制面板中,点击左边安装Apache和MySQL服务,再单击中间按钮,打开Apahce和MySQL成功为以下状态即为正常:三、打开计算机C盘,找到xampp文件夹并打开,把 C:\xampp\htdocs 目录下的两个文件删除,把“google离线地图源码.rar”放在该目录下并解压,把解压的文件全部放在此目录(C:\xampp\htdocs)下,如下图:四、浏览器首次访问以下地址:http://localhost/或http://127.0.0.1/ 会自动导入数据库五、浏览器再访问http://localhost/或http://127.0.0.1/即可访问默认的离线地图了,局域网内其他电脑输入本机内网IP地址也可以访问(注意关闭防火墙)六、登录离线地图后台管理访问地址:本机访问地址:http://localhost/login.html或http://127.0.0.1/login.html 局域网内其他主机:http://本机内网IP/login.html 账号信息:管理员账号:admin 密码:admin默认一般账号:test 密码:123后台管理界面:地图控制面板功能:点击可以隐藏右边控制面板七、离线地图瓦片下载打开Bigemap地图下载器(需要授权才可以下载瓦片),选择对应的地图源,用矩形框选择需要下载的区域,双击下载(注意:存储选项必须选择“瓦片谷歌”,格式选择“png”,级别勾上从低级到所需较高级别)建议:大区域下载低级别,越精确的小区域下载高级别例如(标注成都天府广场):最佳下载方式:中国地图:1-8级四川:9-10级成都:11-12级成都三环内:13-15级成都一环内:16-19级, 注意把中心坐标选择为成都市中心把下载的离线电子地图瓦片拷贝在C:\xampp\htdocs\电子地图瓦片目录中,如图:注意:卫星地图瓦片拷贝在C:\xampp\htdocs\卫星地图瓦片目录中,其他地图类似更多相关内容请参考【Google离线地图API解析】后台编辑演示地址:/google/login.html可随意在后台添加/修改标注账号密码均为:admin。
百度⾕歌离线地图解决⽅案(离线地图下载)离线地图解决⽅案,除了买地图数据,使⽤专业的ArcGIS来做外,也可以使⽤来做。
关于GMap的开发教程,可以看我以前的⽂章:使⽤了GMap⼀年了,也有了⼀些积累,开发了⼀个可以下载ArcGIS、百度、⾕歌、⾼德、腾讯SOSO、天地图、Here等地图的地图下载器。
百度和google地图加载显⽰如下:百度普通地图:百度混合地图:⾕歌普通地图:⾕歌混合地图:从⽬前的情况来看,百度的普通的地图数据是更新最快的,但是有些⼩地⽅没有卫星地图,⽽⾕歌⼏乎所有的地⽅都有卫星地图,但是⾕歌中国的地图更新太慢,⽐如说南京已经有3号线和10号线了,⾕歌地图上就没有。
只要地图能加载显⽰,就可以下载到本地,开发的地图下载器⽀持SQLite、MySQL、MsSQL、PostgreSQL等数据库保存,也可以以固定⽬录组织保存到本地磁盘上,⽀持ArcGIS的WMS切⽚服务的图源使⽤。
下载到本地磁盘的地图:⽀持的地图下载⽅式:(1)选择⼀个矩形区域下载。
(2)选择某个省、市进⾏下载。
下载到MySQL的地图数据:⾃⼰扩展的.Net地图控件主要功能:1)下载百度、⾕歌、⾼德、腾讯、Here、天地图的地图,按区域下载或是省市边界下载。
2)各类画图⼯具:矩形、圆形、多边形、线段、折线段。
可以作为电⼦围栏、地图圈选⼯具、地图画图⼯具使⽤。
3)各种图标:图⽚、图⽚+⽂字说明、gif动态图⽚、带旋转⾓度的箭头、闪动的报警图标4)类似百度地图的“测距”功能:两点之间的距离,或者根据某个距离在地图上展⽰线段或者多边形。
5)发布离线地图服务:这⾥的离线地图只是地图显⽰服务,将下载的离线地图数据作为Http服务发布在局域⽹内使⽤。
这样的离线地图客户端仍然可以使⽤,⽽Web端可以使⽤Openlayers或者是Leaflet等js库做。
更多关于离线web GIS⽅⾯的资料,请参考。
如下是⽤leaflet js做的简单的demo,⽤的是google的地图:6)GPX数据的读取与展⽰。
6220C离线使用Google Maps谷歌地图的方法教你下载谷歌离线地图包6220C离线使用Google Maps谷歌地图的方法教你下载谷歌离线地图包介绍一个让你在电脑上下载指定区域谷歌地图的方法!!谷歌地图上的生活资讯可以说是相当详细的,实时更新保证了其信息的新鲜程度和有效性!增加了我们大六导航的可玩性!我一直都在想要是在电脑上能吧谷歌地图下载下来,这样在手机上浏览就可以省很多流量啊哈!找了一个方法,感觉还不错,能自由选择地图来下载。
是通过MGMaps 这个软件来实现,免费的Java软件,只要支持Java的手机都可以用,不限于大六噢!下面教程开始!-----------------------------------------------------------------------------------------------------------------------------1.下载MGMaps下面附件内下载2.用文件管理器点击jad安装一定要由 mgmaps_6220C.jad 安装噢!要不之后读取离线文件会提醒N次,直到你烦...3.设置中文进入软件后选择 setting—>language—>Chinese(simplified)设置的时候需要联网只需一点流量4.设置地图类型打开“地图旋转类型:”(这个翻译很有问题,其实就是选择地图类型)。
如果你只在国内使用MGMaps,建议你选择Google Ditu(China),相应的,制作地图时要选择“Google Road Maps(China)”;如果在国外使用MGMaps,建议你选择“Google Maps”,相应的,在制作地图时,应选择“Google Road Maps”。
把雅虎的都去取消!在地图设置总把离线模式勾上!以上都设置好后左键选项中记得点保存!重启程序就能生效!5.制作离线地图坐标。
无论你想制作哪个国家的地图都请进入这个网页:。
使用AutoNavi MAP API 开发地图应用•为什么要使用AutoNavi MAP API•AutoNavi MAP API 概述•AutoNavi Android MAP API 与Google Android Map API 比较•如何使用AutoNavi MAP API如何实现坐标偏转如何创建MapView如何创建ItemizedOverlay如何创建PoiSearch如何创建Geocoder如何创建MyLocation•FAQ•技术支持(QQ群:122795260, 邮箱:mapservice@)为什么要使用AutoNavi MAP API因为商业上的原因,联想不能在中国市场发布的手机上预装Google相关的手机服务,包括Google地图API。
为了解决这一问题,我们和高德公司(AutoNavi)合作,在手机上预置了AutoNavi提供的多种基于位置的服务。
高德公司作为中国领先的导航电子地图内容和位置服务解决方案提供商,旗下的互联网MAP API()同样在业界具有良好的口碑。
可为客户提供跨平台、跨媒体的位置服务解决方案。
我们同时鼓励中国的开发者们,使用AutoNavi MAP API开发基于位置和地图应用程序,并且发布在中国市场中的联想手机上。
AutoNavi MAP API 概述AutoNavi MAP API是高德软件公司提供的调用地图的接口方法。
用户的应用程序可以通过AutoNavi MAP API提供的接口方法操作地图数据,实现位置相关或地图相关应用。
例如,通过调用AutoNavi MAP API,将地图数据整合到自己的应用中,可以将商户的地理位置信息在地图上进行标注,以很直观的形式展现给使用者。
AutoNavi MAP API还将添加自驾,公交及步行的线路规划API。
同时,还将加入对矢量地图的支持,大幅提高地图下载的速度。
在不久的将来,还会加入3D街区图和其他的个性化地理数据支持。
如何发布google离线地图及二次开发API说明本案例实现内容:GoogleEarth瓦片地图的获取、在ArcGIS Server Manger中发布下载好的影像瓦片数据。
工具准备1、BIGEMAP地图下载器/Home/Product/index.html2、ARCGIS10.2 /s/1i5uMzU93、ARCGIS SERVER /s/1o8k7LUi一、下载瓦片数据启动BIGEMAP地图下载器,选择【谷歌地球】,选在你要下载的区域,双击下载区域,选择级数,如下图:由于我们需要导出ArcGIS选择【】下载完成后,下载好的目录里面有个【conf.xml】文件,如果要拷贝瓦片到其他地方,这个文件要一起拷贝走,并且保存位置不发生变化,ARCGIS 发布的时候会自动读取这个文件。
如下图:二、在ArcGIS中发布服务首先确认arcgiser server是否按照完成,在浏览器输入:http://localhost:6080/arcgis/manager/如果可以正常访问,就证明已安装好,可以进行地图发布了。
安装时默认的用户名:admin 密码admin打开arcMap,单击添加数据按钮,如下图:单击后如下图:若在查找范围内没有找到你下载的文件夹,然后单击连结到文件夹按钮,连结到你下载瓦片的文件:就可以在查找范围内找到你下载瓦片的文件夹了,把刚下载好的瓦片文件在arcMap中打开,可以预览到瓦片地图,依次选择文件,共享为,服务:弹出对话框,点击”下一步“选择一个连结,并填写一个服务名称(如果选择一个连结为灰色,请确认安装好了arcgisServer):点击“继续”,弹出服务编辑器对话框。
直接单击发布,至此在ArcGIS中发布GoogleEarth瓦片为网络地图服务完成,在浏览器中输入localhost:6080/arcgis/manager/,输入安装Arcgis Server时设置的用户名称密码就可以查看刚刚发布的地图了z。
电子地图标注软件使用说明书v3.6一、软件功能简介1.支持谷歌在线(离线)混合卫星地图和普通地图。
2.支持1-18级的地图随意缩放,鼠标左键拖动漫游。
3.支持名称查询定位,可以输入地点名称后定位到所查询的位置。
4.支持坐标查询定位,可以输入坐标数值后定位的所查询的位置。
5.支持用户自定义信息,信息高级查询,查询结果实时定位。
6.支持在地图上所选择的标注能点击查看详细信息。
7.支持添加地图标记,距离测量和面积测量,地点名称显示。
8.支持鹰眼显示缩略地图,截屏功能。
9.支持添加自定义标识图标,用户可以更换图标。
10.分类图层管理,可以隐藏/显示图层。
11.支持批量导入导出标注数据。
12.支持绘制直线、曲线和任意线段,可改变颜色和宽度。
13.支持GPS卫星定位功能,需要连接GPS卫星定位硬件设备(USB GPS设备或蓝牙GPS设备;平板电脑)。
14.支持离线地图包自定义下载功能,可以下载世界任何地方的地图。
15.软件功能可根据用户具体需求制订。
二、软件功能及操作软件工具上主菜单包括地图、数据、工具、设置、离线包、帮助,选中不同的菜单可以切换到对应的功能区。
(1)地图基本功能操作方法1)地图缩放、移动、刷新、地图类型地图缩放有两种方式:用鼠标滚轮缩放;通过点击工具栏中的放大、缩小按钮;地图移动:用鼠标左键按钮拖动即可;地图刷新:点击工具栏中的刷新按钮即可;地图类型切换:点击工具栏左上的地图类型切换普通地图和卫星地图;2)隐藏/显示左栏列表点击工具栏上的隐藏列表按钮,可以隐藏/显示相互切换;3)地图截屏点击工具栏上的截屏按钮,截取当前显示在屏幕上地图图像,并保存为图片;4)搜索定位通过地址关键字和标注关键字搜索定位:搜索结果在左侧栏显示;通过经度纬度值定位:输入经纬度值,点击按钮后自动定位;5)标注定位:在下面的列表里面会显示标注信息,点击每个标注信息会自动定位到该标注地理位置;5)地标定位:在地标列表中显示中国所有省、市、区、县等地标,用鼠标点击后会自动调整到该地区;(2)地图中标注(标记)图示1)新建标注:在地图上点击一个位置,点击工具栏上的新建标注按钮,弹出下面窗口,按基本信息、其它资料、标注图示填写完成后点击确定按钮标注操作完成。
Google 地图 API 参考帮助Google 地图 API 现在与Google AJAX API 载入器集成,后者创建了一个公共命名空间,以便载入和使用多个 Google AJAX API。
该框架可让您将可选 google.maps.* 命名空间用于当前在 Google 地图 API 中使用的所有类、方法和属性,使用此命名空间替换常规G 前缀。
不要担心,现有G命名空间仍能得到支持。
例如,Google 地图 API 中的 GMap2 对象还可以定义为 google.maps.Map2。
请注意,此参考文档仅指现有G命名空间。
如果只是要使用地图显示内容,则需要了解以下类、类型和函数:∙GMap2∙GMapOptions∙GGoogleBarOptio ns∙GInfoWindow∙GInfoWindowTab ∙GInfoWindowOpti ons∙GMarker∙GMarkerOptions ∙GPolyline∙GPolylineOption s∙GPolyEditingOpt ions∙GPolyStyleOptio ns∙GPolygon∙GPolygonOptions ∙GScreenOverlay ∙GScreenPoint∙GScreenSize∙GGroundOverlay ∙GIcon∙GPoint∙GSize∙GBounds ∙GLatLng∙GLatLngBounds∙GControl∙GTileLayerOptions∙GTileLayerOverlayOptions∙GEvent∙GEventListener∙GXmlHttp∙GXml∙GXslt∙GLog∙GDraggableObject∙GDraggableObjectOptions∙GGeoStatusCode∙GGeoAddressAccuracy∙GClientGeocoder∙GGeocodeCache∙GFactualGeocodeCache∙GMarkerManager∙GMarkerManagerOptions∙GGeoXml∙GDownloadUrl∙GBrowserIsCompatible∙GDirections∙GDirectionsOptions∙GTravelModes∙GRoute∙GStep∙GTrafficOverlay∙GTrafficOverlayOptions∙GAdsManager∙GAdsManagerOptions∙GStreetviewPanorama∙GStreetviewPanoramaOptions∙GStreetviewOverlay∙GStreetviewClient∙GStreetviewClient.ReturnValues∙GStreetviewData∙GStreetviewLocation∙GStreetviewLink∙GPov∙GStreetviewPanorama.ErrorValues如果您要通过实现自己的控件、叠加层或地图类型来扩展地图 API 的功能,则还需要了解以下类和类型:∙GGoogleBarListingTypes∙GGoogleBarLinkTarg et∙GGoogleBarResultLi st∙GMapPane∙GOverlay∙GControl∙GControlPosition ∙GControlAnchor∙GMapTypeControl∙GMenuMapTypeControl∙GHierarchicalMapTypeControl∙GMapType∙GMapTypeOptions∙GLayer∙GTileLayer∙GTileLayerOverlay∙GCopyrightCollection∙GCopyright∙GProjection∙GMercatorProjection对GMap2类进行实例化以创建地图。
一、下载瓦片数据启动BIGEMAP地图下载器,选择【谷歌地球】,选在你要下载的区域,双击下载区域,选择级数,如下图:由于我们需要导出ArcGIS选择【】下载完成后,下载好的目录里面有个【conf.xml】文件,如果要拷贝瓦片到其他地方,这个文件要一起拷贝走,并且保存位置不发生变化,ARCGIS 发布的时候会自动读取这个文件。
如下图:二、在ArcGIS中发布服务首先确认arcgiser server是否按照完成,在浏览器输入:http://localhost:6080/arcgis/manager/ 如果可以正常访问,就证明已安装好,可以进行地图发布了。
安装时默认的用户名:admin 密码admin打开arcMap,单击添加数据按钮,如下图:单击后如下图:若在查找范围内没有找到你下载的文件夹,然后单击连结到文件夹按钮,连结到你下载瓦片的文件:就可以在查找范围内找到你下载瓦片的文件夹了,把刚下载好的瓦片文件在arcMap中打开,可以预览到瓦片地图,依次选择文件,共享为,服务:弹出对话框,点击”下一步“选择一个连结,并填写一个服务名称(如果选择一个连结为灰色,请确认安装好了arcgisServer):点击“继续”,弹出服务编辑器对话框。
注意:1、【功能】按钮里面勾选WMS服务2、【缓存】使用缓存中的切片3、【切片方案】切片方案文件,这里会弹框让你选择对应切片缓存的xml文件【切片方案文件】弹出对话框,找到BIGEMAP下载的arcgis瓦片目录里面的config.xml文件,如下图:添加确定之后,会显示出你下载Arcgis瓦片的级别,大家根据自己的瓦片等级调整。
勾选【发布服务后,手动构建缓存】这个选项,如下图:点击窗口右上角的“分析”,如果没有错误就可以点击右上角的“发布”按钮了。
中间会提示你“是否将数据发送到服务器”,选择“确定”。
至此在ArcGIS中发布GoogleEarth瓦片为网络地图服务完成,在浏览器中输入localhost:6080/arcgis/manager/,输入安装Arcgis Server时设置的用户名称密码就可以查看刚刚发布的地图了。
一,google离线地图的使用方法:1.首先必须要下载google地图4.7以上的版本,这里提供个5.2.1的最新版下载2.将下载的google地图离线包解压到SD卡根目录下的/sdcard/brut.googlemaps/tiles/map-zh_CN-andnav3.打开地图软件,点菜单、更多、高级设置从缓存读取地图和保存地图缓存勾选。
4.设置好后关闭谷歌地图,再打开谷歌地图就可使用离线地图包了。
使用时出现“一直处于正在加载状态”的原因1、第一次打开地图前必须在联网状态并需对地图进行缓存设置;:2、在地图设置里未对地图读取和写入进行缓存设置或设置不对;3、离线地图包文件解压路径不对或SD卡里的文件目录结构不正确4、SD卡里的离线包地图文件夹名称与地图版本不一致;5、安装和使用了不支持离线地图包的谷歌地图版本6、在未连网的情况下使用了超出离线地图包缓存文件的范围。
/谷歌地图附件:GoogleMaps__v5[1].2.1.apk (5.86 MB)谷歌通用离线地图包下载:/forums/thread-5537209-1-1.html188MB北京地区离线地图包下载:1.8G离线地图包(以卫星地图为主)注意:此包占用SD卡空间约5GB多。
全世界范围可放大至50-100公里,国内10-20公里,东南沿海-长三角和珠三角-京沪杭等城市依次增大,浙江全省500米,杭州市200米。
文件太大,级别再多卡里就放不下了,分两个压缩包二、离线地图的制作方法:有句老话叫:授人以鱼不如授人以渔,虽然地图包有了但有的位置不够详细或者看不到,下面告诉大家离线地图的制作方法:1.先把下载好的google地图安装好,4.7版以上的不嫌弃版本就的话可以不用安装。
2.打开google地图后设置--更多--高级设置(Brut Mod),将‘地图缓存’中前二项都勾选,数据库格式改为新Gmap格式:AndNav,返回退出Google map。
如何用Google离线API调用离线地图
这里以云南保山市为例,说明如何用谷歌离线API调用离线地图。
首先,点击视图左上方的地图类型按钮选择谷歌地图(如果没有该项请点击“更多”选项),然后在视图右上方选择云南省保山市显示行政区划,最后点击“下载”按钮显示“新建任务”对话框。
一般情况下,从新建任务时行政区划显示的级别开始,一直选择到第19级,但这里我们只以选择到第14有为例。
在“新建任务”对话框中点击“导出设置”显示参数设置对话框,在该对话框中选择瓦片类型为TMS瓦片,文件格式为PNG,坐标投影为WGS84 Web 墨卡托投影,背景色为透明。
分别点击“确定”按钮之后开始下载数据,在下载过程中可以即时查看下载结果。
下载完成后,会根据新建任务时的参数设置导出谷歌TMS瓦片。
将导出结果文件夹复制到谷歌离线API目录中。
启动一个WebGIS开发工具,这里以Visual Studio Code 开发工具为例。
点击“文件”菜单中的“打开文件夹”菜单。
相关文档请参阅:
如何下载安装WebGIS开发工具Visual Studio Code
浏览到百度离线API目录之后,点击“选择文件夹”按钮打开百度离线API 工程源码。
谷歌离线API源码工程加载完成之后,在map.js文件中将原离线地图文件夹“googleTMS”修改为当前离线地图文件夹,这里修改为“保山市谷歌地图TMS瓦片”并保存修改。
双击谷歌离线API源码中的map.html文件可打开显示离线地图。
用谷歌离线API源码成功加载云南省保山市离线地图之后,效果如下图所示。
相关内容请参阅:
Google离线API的在线地图调用示例。