谷歌地图解析地址
- 格式:doc
- 大小:17.50 KB
- 文档页数:3
google地图的定位原理看到GOOGLE地图定位非常准确,于是想弄明白它的原理,用了代理结果定位还是非常准确,不禁吓了一身汗,GOOGLE不会和网通合作了,通过接入点来定位吧?!于是上网搜了一下,看看是什么原理,看完才了现,GOOGLE太狠了。
它要是想定位谁,应该不是什么难事吧。
所以那些想犯罪的同学:没事千万别开WIFI 和GPRS!你的位置信息,很可能已经被存在数据库里了。
文章如下:-----------------------------------------最近在玩google手机的地图定位系统.非常准确.于是感到好奇.想看看到底定位的原理是什么,在网上搜索了一下.发现下面这篇文章,看完之后让人冷汗直冒.请看下面内容:先说结论:google maps是通过无线路由器的mac地址(而不是wifi信号)定位的(mac地址通常情况下全球唯一)分析:看了很多人都在猜测google maps通过wifi定位的原理,什么用cdma信号,什么预先知道热点的经纬度啦,我感觉都没有说到点子上。
刚开始用的时候我也很不解。
前段时间,我搬到离原来房子300多米外的另一套房子去住,无线上网卡多少钱?座机号码换了,adsl帐号换了(当然电话线也换了),只有无线路由器和手机没变,结果,连上wifi,通过wifi定位,哈哈,露馅了吧,位置还是在我原来的老位置(老位置是非常精确的)。
大家都知道,在使用google maps的时候,是要联网的,不管是cmnet,cmwap,ctnet,wifi,总之要连到网上,才能使用。
当你的手机联网使用gps的时候,google就会打开wifi,搜索无线信号,此时,不管无线路由器是否加密,都可以获得无线路由器的mac地址,然后,通过联网,将当前位置及无线路由器mac地址及经纬度传到google的服务器中。
下次,当另外某人在这个无线路由器信号范围内使用google maps,把获得的mac地址跟数据库的mac地址一对比,就能知道你在什么地方了!如果不信,你可以换一个新的,从来没有用过的无线路由器(就是说他的mac地址google的数据库里肯定没有的)接到原来的电话上,看还能不能定位!我觉得这种解释是最能够解释广大玩家遇到的各种状况的。
开发人员指南地图基础知识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 地图切片URL地址解析分类:GIS 2012-05-19 11:56 8564人阅读评论(4) 收藏举报googleurlchromeserviceweb目录(?)[+]一、Google地图切片的投影方式及瓦片索引机制1.Google地图采用的是Web墨卡托投影(如下图),为了方便忽略了两极变形较大的地区,把世界地图做成了一个边长等于赤道周长的正方形(赤道长度为6378137米),原点在正方形中心,即经纬度为(0,0)处。
Web墨卡托投影的X,Y坐标取值范围为:[-20037508.3427892,20037508.3427892],对应的经度取值范围为[-180,180],对应的纬度范围则为[-85.05112877980659,85.05112877980659]。
具体投影解释请参考墨卡托投影:2.Google 地图的索引机制是TMS(Tile Map Service) 规范的一个变种,其地图瓦片如下图进行索引:Google 瓦片坐标系:把地球投影后形成的正方形划分为2 的level(缩放级别) 次幂个地图瓦片,原点在左上角,类似于像素坐标系;详细解释参见Google MapsAPI 文档。
TMS瓦片坐标系:TMS与Google的地图瓦片切割方法相同,不同的是TMS的原点在左下角。
转换关系:TMS 与Google 坐标系的X 、Z是相等的,Y 的转换关系为:Y(TMS) + Y(Google) = Math.pow(2,zoom) - 1注:关于投影和瓦片索引机制强烈推荐阅读:Tiles à la Google Maps: Coordinates, Tile Bounds and Projection,文中详细分析了地图瓦片涉及各类坐标的转换关系及具体算法,包括瓦片坐标(Google、TMS、Bing QuadTree)、像素坐标、WGS84 经纬度、Mercator 投影平面坐标等。
2001年8月手中兴U880,发现谷歌地图无法定位,经过查资料及折腾,终于找到原因,并完美解决,现放出教程,以供大家分享[------------------------严重鄙视不顶就下文件的------------------------------]一、适用范围:1.所有安卓系统手机2.任何版本的GOOGLE MAP 包括最新的5.9版本二、程序表现症状:1.谷歌地图无法连接到谷歌服务器,不能通过WIFI或GPRS下载或更新地图资料2.谷歌地图不能利用手机信号进行手机定位、三、原因分析:1.google maps具有多个IP接入地址,手机上存在的hosts 文件中得IP地址已经改动,程序在请求数据的时候无法得到回复,故不能联线更新地图2.中国移动在推出U880时,在其定制包中为了推广“移动导航”软件,特意将GOOGLE框架服务程序中的部分功能进行阉割,也就是移动所谓的精简,导致谷歌地图无法读取移动基站信息,从而无法定位!三、解决需要的软件及文件:a.取得ROOT权限工具:b.手机上进入系统工具:c.需要补充进手机的文件包:四、准备文件1.下载上述三个文件2.在电脑端解压root权限取得工具,确保手机联线,并且电脑能识别手机型号(可以下载91手机助手来自动安装手机驱动程序)后,在电脑端执行解开的ROOT工具文件包中得SuperOneClick.exe文件,并点击左上角ROOT,有出来对话框时,一路按确定或回车即可,然后重启手机(手机端出现一个黑白类似骷髅图标)3.解压手机修复工具,得到R.E.管理器.apk文件,并安装到手机(用91助手的直接在电脑上点击安装,没91的拷贝到手机上安装),安装完成后运行一次,手机ROOT授权文件提示:是否允许R.E.管理器取得最高权限,点“是”,使R.E.管理器取得进入系统的权限4.解压谷歌地图定位补充文件,并将文件夹拷贝到手机上备用五、开始修复1,手机上运行R.E.管理器,找到刚才拷贝到手机的文件包,找到hosts 文件,并长按不放,在弹出的对话框中点击“复制”,然后找到手机系统SYSTEM\ECT 文件夹,先按屏幕右上角的“挂载为读/写”按钮,然后按屏幕下端的“粘贴”按钮,将hosts 文件补充或覆盖掉原文件2,使用RE管理器将解开并复制到手机上的补充文件包内system\内的三个文件恢复到相应目录下。
开发之地址解析与路径查找介绍了如何在GMap地图上添加多边形,这篇介绍下如何使用在线的地图服务进行“地址解析”和“路径查找”。
先看地址解析,GMap中的地址解析主要用到GeocodingProvider中的如下方法://根据关键字得到一组坐标GeoCoderStatusCode GetPoints(string keywords, out List<PointLatLng> pointList);//根据关键字得到一个坐标PointLatLng? GetPoint(string keywords, out GeoCoderStatusCode status);//根据坐标得到一组地址GeoCoderStatusCode GetPlacemarks(PointLatLng location, out List<Placemark> placemarkList);//根据坐标得到一个地址Placemark GetPlacemark(PointLatLng location, out GeoCoderStatusCode status);先定义一些变量:private GMapOverlay locations = new GMapOverlay("locations"); //放置搜索结果的图层private GeocodingProvider gp; //地址编码服务List<PointLatLng> searchR esult = new List<PointLatLng>(); //搜索结果PointLatLng start = PointLatLng.Empty; //路径开始点PointLatLng end = PointLatLng.Empty; //路径结束点mapControl.Overlays.Add(locations); //不要忘了添加使用的图层地址解析的准确度和当前使用的地图服务有很大关系,一般使用什么MapProvider就使用该MapProvider提供的服务。
Google地图搜索功能全面使用攻略Google地图是一款广为人知的地理信息软件,不仅提供了精准的导航功能,还包含了丰富的搜索工具,帮助用户快速找到所需的地点或服务。
本文将详细介绍如何充分利用Google地图的搜索功能,以提高使用体验和效率。
一、地点搜索Google地图的地点搜索功能非常强大,可以通过输入关键词或者地址信息,快速找到目标地点并显示在地图上。
为了更好地利用地点搜索功能,以下是一些使用技巧和注意事项:1. 输入关键词在搜索栏中输入相关的关键词,如餐厅、银行、学校等,Google地图会自动匹配相关的地点并显示在搜索结果中。
可以根据自己的需求输入更详细的关键词,如“意大利餐厅”或“24小时银行”。
2. 地点分类Google地图的搜索结果还会按照不同的地点类型进行分类,如餐饮、购物、住宿等。
通过点击分类标签,可以快速浏览到特定类型的地点信息,并在地图上显示相关位置。
3. 附近搜索如果想要在周围搜索特定类型的地点,可以使用“附近”功能。
在搜索栏中输入关键词后,点击“附近”按钮,选择合适的半径范围,Google 地图会显示附近的地点并标记在地图上。
4. 地点详情点击搜索结果中的地点名称,可以查看更详细的信息,如地址、电话、营业时间等。
此外,还可以查看其他用户的评论和评分,以便更好地了解该地点的质量和服务。
二、导航搜索除了地点搜索,Google地图还提供了强大的导航功能,可以帮助用户规划最优路线到达目的地。
以下是一些关于导航搜索的技巧和建议:1. 输入起点和终点在搜索栏中分别输入起点和终点的地址,Google地图会自动计算出最佳的行车或步行路线,并提供详细的导航指引。
选择不同的交通方式,如自驾、公交、步行等,可以得到相应的导航路线。
2. 实时交通信息Google地图可以提供实时的交通信息,帮助用户避开交通拥堵和道路事故。
在导航搜索结果中,会显示当前交通状况,并根据实时情况调整导航路线。
3. 导航选项和偏好在进行导航搜索时,Google地图还提供了许多导航选项和偏好设置,以满足不同用户的需求。
注:本教程仅用于拐点坐标经纬度的确定,不能实现制图。
一安装Google 地球软件“Google 地球”是Google公司免费提供的软件,可以在网上下载安装。
最快捷安全的获取方式是通过“360软件管家”下载安装一键完成。
步骤如下图:1 在搜索框输入“Google earth”2 点击“搜索”3 下载安装google earth。
说明:使用该软件需要计算机处于联网状态,网速越快效果越佳。
二使用Google earth 识别地物1 双击打开Google earth ,定点操作主要用到常用工具栏和位置管理栏,“步骤三”会详细讲解使用方法。
软件界面如下:2 根据对实际地形的了解和认知找到目标湖泊、水库、河流等水域具有标志性特征的已知点,如:大堤折点、水闸、自然岬角、湖心岛、道路、桥梁、居民点等关键定位点。
肉眼查找实地实物是个熟能生巧的过程,多多摸索有利于提高工作效率。
特别说明:google earth 中村庄的名称标注位置与村庄实际位置有较大误差,没有参考价值,切勿根据名称寻找村庄。
三定点方法Google earth 软件常用工具栏中有定点、路径描画、多边形描画、测距等工具,其中定点、路径描画、多边形描画分别对应于点、线、面的定位功能。
本教程只涉及定点功能,对其他功能感兴趣的可以自行探索。
图标是定点工具。
坐标格式转换:同一位置坐标的十进制度格式(如112.35487°)与度分秒格式(如112°19′45.06″)是等价的,两种格式之间的转换可通过勾选菜单栏中“工具——选项——3D视图——显示纬度/经度”来实现。
定点工具使用方法:1、在位置管理栏中鼠标右键单击“我的位置”——“添加”——“文件夹”,文件夹命名为“XXX保护区拐点”。
上图:新建文件夹上图:文件夹命名2、单击位置管理栏中新建立的文件夹使之处于激活状态(文件夹名有淡蓝色背景为激活状态)。
将鼠标放置在图像区,通过拖拽(摁住鼠标左键不放拖动图片)和缩放(鼠标滚轮前后滚动)相互配合找到目标拐点(如湖区岬角),鼠标左键单击,图像区会出现黄色图钉及其属性对话框,如图:注意:为了保证定位精度,务必将图片缩放到足够清晰的程度。
GoogleMaps地图导航教程第一章:Google Maps地图导航的介绍Google Maps是一款由谷歌开发的全球领先的地图导航应用程序。
它可以在各种设备上使用,包括电脑、智能手机和平板电脑。
用户可以利用Google Maps查找地点、获取方向、规划路线以及探索附近的商店、餐馆和其他地点。
第二章:使用Google Maps进行地点搜索使用Google Maps进行地点搜索非常简单。
在应用程序的搜索栏中输入具体地址或地点名称,然后点击搜索按钮。
Google Maps会立即显示搜索结果,包括相关的地点信息、用户评价和照片。
用户还可以通过搜索栏的下拉菜单选择特定的类别,如餐馆、酒店、加油站等。
第三章:使用Google Maps获取方向Google Maps可以帮助用户快速准确地获取方向。
用户只需输入起点和终点的地址或名称,点击“获取方向”按钮。
应用程序会提供一条最佳路线,并给出详细的导航指示,包括转弯提示、交通情况以及到达时间估计。
Google Maps还会根据实时交通状况自动调整路线,确保用户能够选择最快的路径。
第四章:使用Google Maps进行路线规划除了提供基本的方向指引外,Google Maps还具有强大的路线规划功能。
用户可以在应用程序中设置多个的途经点,以便规划复杂的行程。
例如,如果要找到去多个地点的最佳路线,只需在起点和终点之间添加途经点,Google Maps会自动计算路线,确保用户经过每个途经点。
第五章:使用Google Maps进行步行和骑行导航Google Maps不仅适用于汽车导航,还可以提供步行和骑行导航。
对于那些喜欢徒步旅行或骑自行车的人来说,这是非常有用的功能。
用户只需在导航选项中选择步行或骑行模式,Google Maps会为用户提供相应的路线和导航指示。
此外,该应用还可以显示步行或骑行路径上的高度变化,以便用户了解线路的难度。
第六章:使用Google Maps探索附近的地点Google Maps还具有探索功能,能够帮助用户发现附近的餐馆、酒店、购物中心等地点。
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import javax.microedition.io.*;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Form;
import javax.microedition.midlet.MIDlet;
public class ddd extends MIDlet
{
Form f;
Display display;
String str;
String
googleKey="ABQIAAAAdYCN6Ksi-ZoB3OPFjENqUhSGJMoB1sjx4ug4S4tF3OoRkaYqnhSyIr Y6WDxVyRvi-woWJAIZkQ3y8g";
String url = "/maps/geo?output=csv&q="+"jinan"+"&sensor=false&key="+googleKey;
public ddd()
{
display=Display.getDisplay(this);
f=new Form("");
f.append(sendHttpPost(url));
}
protected void destroyApp(boolean arg0) {}
protected void pauseApp() { }
protected void startApp() {
display.setCurrent(f);
}
private String sendHttpPost(String url)
{
HttpConnection hcon=null;
DataInputStream dis=null;
DataOutputStream dos=null;
StringBuffer responseMessage=new StringBuffer();
// 请求体
String requeststring="This is a POST. ";
try{
// 使用读写权限的HttpConnection
hcon=(HttpConnection)Connector.open(url,Connector.READ_WRITE);
//设置请求方法为POST
hcon.setRequestMethod(HttpConnection.POST);
// 取得发送请求字符串的DataOutputStream
dos=hcon.openDataOutputStream();
byte[] request_body=requeststring.getBytes();
// 发送请求字符串到服务器
for(int i=0;i< request_body.length;i++){
dos.writeByte(request_body[i]);
}
// 取得做为接收服务器响应的DataInputStream dis=new DataInputStream(hcon.openInputStream());
// 从服务器上取回响应
int ch;
int m=0;
while((ch =dis.read())!=-1)
{
if((char)ch==',')
m++;
if(m==0||m==1)
continue;
if(m==2){m++;continue;}
responseMessage.append((char)ch);
}
}
catch( Exception e )
{
e.printStackTrace();
responseMessage.append( "ERROR " );
}
finally
{
// 释放输入输出流和HTTP连接
try {
if(hcon!=null)
hcon.close();
if(dis!=null)
dis.close();
if(dos!=null)
dos.close();
}
catch (IOException ioe)
{
ioe.printStackTrace();
}
}
return responseMessage.toString();
} }。