自己的项目中有获取当前点击的坐标经纬度或者获取当前街道的信息的需求。
估计这个对于新手来说,还是比较麻烦的,因为从官网上找这个也并不是很好找,要找好久的,运气好的可能会一下子找到。

献上自己写的测试案例。代码如下:

<!DOCTYPE html>
<html> <head>
<title>Simple Map</title>
<meta name="viewport" content="initial-scale=1.0">
<meta charset="utf-8">
<style>
html,
body {
height: 100%;
margin: 0;
padding: 0;
} #map {
height: 100%;
}
</style>
</head> <body>
<div id="map"></div>
<script>
function initMap() {
var myLatlng = {
lat: 39.921323,
lng: 116.426239
};
var marker ;
var markersArray = [];
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 12,
center: myLatlng
});
// ---- Google隐藏 ----
var isFirstLoad=true;
//地图瓦片加载完成之后的回调
google.maps.event.addListener(map, 'tilesloaded', function () {
if (isFirstLoad) {
hideLogo();
isFirstLoad=false;
}
});
function hideLogo() {
$("#map .gm-style-cc").hide();
$("#map [title='点击以在 Google 地图上查看此区域']").hide();
}
// ---- Google隐藏 ----
map.addListener('click', function(e) {
addMarker(e.latLng, map);
//根据经纬度获取 当前地理信息
var latLngData = e.latLng.lat().toFixed(6)+','+e.latLng.lng().toFixed(6);
console.log(latLngData)
$.ajax({
type:"post",
url:"https://maps.googleapis.com/maps/api/geocode/json?latlng="+latLngData+"&location_type=ROOFTOP&result_type=street_address&key=AIzaSyC8IXpNgfA7uD-Xb0jEqhkEdB7j3gbgOiE",
async:true,
success:function(data){
console.log(data)
var site = latLngData+'<br />'+data.results[0].formatted_address;
console.log(site)
var infowindow = new google.maps.InfoWindow({
content: site
});
infowindow.open(map,marker); //弹出信息提示窗口
}
}); });
//添加坐标对象
function addMarker(latLng, map) {
if(markersArray.length>0){
markersArray[0].setMap(null);
};
markersArray.shift(marker)
marker = new google.maps.Marker({
position: latLng,
map: map
});
markersArray.push(marker);
}
}
</script>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyC8IXpNgfA7uD-Xb0jEqhkEdB7j3gbgOiE&callback=initMap" async defer></script>
</body> </html>
<script>
$(window).load(function(){
//$("#map [title='点击以在 Google 地图上查看此区域']").hide();
//$('.gm-style-cc').hide();
});
</script>

注意:请引入自己本地的jquery,因为要用的ajax请求,谷歌的地理服务接口。

代码的核心就在于请求的URL:

url:"https://maps.googleapis.com/maps/api/geocode/json?latlng="+latLngData+"&location_type=ROOFTOP&result_type=street_address&key=AIzaSyC8IXpNgfA7uD-Xb0jEqhkEdB7j3gbgOiE"

这个是经纬度反向地理编码, 这段url里有四个参数:latlnglocation_typeresult_typekey,具体概念以及参数详解,请参考下一章的 谷歌地图API 开发 之 Geocoding API

谷歌地图 API 开发之获取坐标以及街道详情的更多相关文章

  1. 谷歌地图 API 开发之添加标记(解析以及补充)

    今天又看了下官网,发现官网上有地图标记的详细说明.当时居然眼瞎看不见,还琢磨了好久...#$%^&,一定是项目太急,没看到(^o^)/~地址:https://developers.google ...

  2. 谷歌地图 API 开发之信息窗口

    信息窗口 简介 InfoWindow 在地图上方给定位置的弹出窗口中显示内容(通常为文本或图像).信息窗口具有一个内容区域和一个锥形柄.柄顶部与地图上的某指定位置相连. 通常,您会将信息窗口附加到标记 ...

  3. 百度地图api开发:根据坐标获得地理描述地址

    // 创建地理编码实例              var myGeo = new BMap.Geocoder();              // 根据坐标得到地址描述            myGe ...

  4. 谷歌地图api 开发 (转载)

    https://www.cnblogs.com/520lin/p/5800024.html

  5. 深入浅出百度地图API开发系列(1):前言

    百度地图API目前在地图API领域越来越受到众多开发者的关注,许多应用都使用到了百度地图API服务,包括博主me,我自己使用做的是Javascript API,根据经验,我想整理出一份系列教程,如果能 ...

  6. 深入浅出百度地图API开发系列(2):创建地图

    上一篇文章里,先介绍了一下百度地图API开发所涉及到的一些基础概念,包括投影,坐标系等基础概念,再有了这些基础后,我们可以开始开发自己的web地图了.先来个代码示例(建议大家都是用百度地图API大众版 ...

  7. 基于MFC与第三方类CWebPage的百度地图API开发范例

    在进行百度地图API开发之前你需要到http://developer.baidu.com/map申请密匙 密匙申请之后就可以进行百度地图API的开发了. 下面我们以在visual c++6.0里进行地 ...

  8. 【百度地图API】自行获取区域经纬度的工具

    原文:[百度地图API]自行获取区域经纬度的工具 摘要:上一章教大家如何建立自己的行政区域地图.这次为大家提供一个,可视化选择区域,并且能自动生成经纬度代码的工具.工具的源代码完全公开,并且做了详尽的 ...

  9. js基于谷歌地图API绘制可编辑圆形与多边形

    之前的工作中需要在谷歌地图上绘制可编辑多边形区域,所以基于谷歌地图API封装了个html页面,通过调用js绘制多边形并返回各点的经纬度坐标:当然首先你要保证你的电脑可以打开谷歌地图... 新建一个ht ...

随机推荐

  1. 千与千寻主题曲beep函数版

    在出代码之前,我们向来了解一下Beep函数. 例: Beep(,); 这个表示575Hz响100ms. 下面给出代码: #include <bits/stdc++.h> #include ...

  2. MinIO 分布式集群搭建

    MinIO 分布式集群搭建 分布式 Minio 可以让你将多块硬盘(甚至在不同的机器上)组成一个对象存储服务.由于硬盘分布在不同的节点上,分布式 Minio 避免了单点故障. Minio 分布式模式可 ...

  3. [考试反思]0914csp-s模拟测试43:破绽

    T1会正解.爆int了,代码里一大堆long long但是有一个地方落了.-70分. 离考试结束还有19秒的时候发现手模样例爆负数了,没来得及改. T2没想.打暴力了.然而实际很好想...早读5分钟就 ...

  4. vue-snippet-模板

    "template": { "prefix": "template", "body": [ "<temp ...

  5. python——namedtuple

    namedtuple()概念理解分享 我们都知道元组tuple的概念,tuple是一个定义之后就不能够更改的可迭代对象,namedtuple作为tuple的兄弟具有同样的属性,一旦定义就不可以更改.但 ...

  6. IPv6笔记-地址结构与分类

    1.地址基础 IPv6地址由被划分为8个16位块的128位组成. 然后将每个块转换为由冒号符号分隔的4位十六进制数字. 2001::3238:00E1:0063:0000:0000:FEFB 每一块多 ...

  7. T-SQL Part X: UNION, EXCEPT and INTERSECT

    MSDN上关于EXCEPT和INTERSECT的文档.MSDN上关于UNION的文档. 值得注意的是,UNION其实有两种,一种是普通的UNION,另外一种是UNION ALL.加上EXCEPT和IN ...

  8. Windows下Apache与PHP的安装与配置

    下载Apache Apache的官网(http://httpd.apache.org) 1.把解压后的Apache拷贝到要安装的目标位置.建议拷贝到C盘根目录下,因为这是其默认设置. 2.我选择的是拷 ...

  9. hdu 1530 Maximum Clique (最大包)

    Maximum CliqueTime Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  10. 在校生如何面向面试地学习Java

    最近我在博客园里,看到不少在校的同学在学java,而且,在我最近举办的一次直播活动中,也有不少在校生同学来提问,java该怎么学. 对于那些已经工作的同学,哪怕才工作不久,毕竟也能从项目实践里总结和探 ...