1.IP定位切换

2.点击坐标获取地点

3.查询地点切换坐标

<!DOCTYPE html>
<html> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>简单地图</title>
<meta name="viewport"
content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<style type="text/css">
html,
body {
width: 100%;
height: 100%;
} * {
margin: 0px;
padding: 0px;
} body,
button,
input,
select,
textarea {
font: 12px/16px Verdana, Helvetica, Arial, sans-serif;
} p {
width: 603px;
padding-top: 3px;
overflow: hidden;
} .btn {
width: 142px;
} #container {
height: 90%;
width: 99%;
text-align: center;
}
</style>
<script charset="utf-8" src="http://map.qq.com/api/js?v=2.exp&key=MJABZ-YGGL5-IBIIN-Q5Z45-FMOI7-VIBGN"></script>
<script src="jquery.min.js"></script>
<script>
//1. 通过传入地址 定位到地址
//2. 通过查询地址 地图定位到地址
//3. 通过地图点击定位,获取到具体地址 var MAP_GLOAP = {
CURR_MAP: [28.21409, 112.89173], //当前坐标
CURR_ADR: null, //当前地址
KEY: 'MJABZ-YGGL5-IBIIN-Q5Z45-FMOI7-VIBGN',
map: null, //地图对象
Maker: null, //标记(单个)
SearchInput: "#mapSearch",//查询文本框
SearchBT: "#mapSearchBT" //查询按钮 };
//刷新查询列表
var RefSearch = function () {
console.log(MAP_GLOAP);
$(MAP_GLOAP.SearchInput).val(MAP_GLOAP.CURR_ADR);
};
//增加打标
var AddMark = function () {
var center = new qq.maps.LatLng(MAP_GLOAP.CURR_MAP[0], MAP_GLOAP.CURR_MAP[1]);
if (MAP_GLOAP.Maker) {
MAP_GLOAP.Maker.setMap(null);
}
MAP_GLOAP.Maker = new qq.maps.Marker({
position: center,
map: MAP_GLOAP.map
}); };
//刷新坐标
var RefMap = function () {
var center = new qq.maps.LatLng(MAP_GLOAP.CURR_MAP[0], MAP_GLOAP.CURR_MAP[1]);
MAP_GLOAP.map.panTo(center);
}
//通过IP获取定位
var IpMap = function () {
//如果有值的话就不需要重新定位
if( MAP_GLOAP.CURR_ADR) return; var data = {
address: MAP_GLOAP.CURR_ADR,
key: MAP_GLOAP.KEY, //key为自己向腾讯地图申请的密钥
output: "jsonp"
}; var url = "http://apis.map.qq.com/ws/location/v1/ip";
$.ajax({
type: "get",
dataType: 'jsonp',
data: data,
jsonp: "callback",
jsonpCallback: "QQmap",
url: url,
success: function (res) {
console.log(res);
if (res && res.result.location) {
MAP_GLOAP.CURR_MAP = [res.result.location.lat, res.result.location.lng]; //刷新坐标轴
RefMap();
//刷新maker
AddMark();
//刷新输入框
RefSearch();
}
else {
alert("暂时没有查到该地区,请重新在试下!");
}
},
error: function (err) {
alert("服务端错误,请刷新浏览器后重试");
}
}); }
//地址查询
var SearchMap = function () {
//1.获取地址名称,转译坐标
//2.设置坐标,重新载入地图
$(MAP_GLOAP.SearchBT).click(function () {
MAP_GLOAP.CURR_ADR = $(MAP_GLOAP.SearchInput).val();
if (!MAP_GLOAP.CURR_ADR || MAP_GLOAP.CURR_ADR < 0) {
alert("查询数据不能为空");
} var data = {
address: MAP_GLOAP.CURR_ADR,
key: MAP_GLOAP.KEY, //key为自己向腾讯地图申请的密钥
output: "jsonp"
}; var url = "http://apis.map.qq.com/ws/geocoder/v1/";
$.ajax({
type: "get",
dataType: 'jsonp',
data: data,
jsonp: "callback",
jsonpCallback: "QQmap",
url: url,
success: function (res) {
console.log(res);
if (res && res.result.location) {
MAP_GLOAP.CURR_MAP = [res.result.location.lat, res.result.location.lng]; //刷新坐标轴
RefMap();
//刷新maker
AddMark();
//刷新输入框
RefSearch();
}
else {
alert("暂时没有查到该地区,请重新在试下!");
}
},
error: function (err) {
alert("服务端错误,请刷新浏览器后重试");
}
}); }) }
//初始化
var init = function () {
//定义map变量
MAP_GLOAP.map = new qq.maps.Map(document.getElementById("container"), {
center: new qq.maps.LatLng(MAP_GLOAP.CURR_MAP[0], MAP_GLOAP.CURR_MAP[1]), // 地图的中心地理坐标。
zoom: 10 // 地图的中心地理坐标。
}); //添加监听事件
qq.maps.event.addListener(MAP_GLOAP.map, 'click', function (e) {
MAP_GLOAP.CURR_MAP = [e.latLng.getLat().toFixed(5), e.latLng.getLng().toFixed(5)]; var data = {
location: MAP_GLOAP.CURR_MAP[0] + ',' + MAP_GLOAP.CURR_MAP[1],
key: MAP_GLOAP.KEY, //key为自己向腾讯地图申请的密钥
get_poi: 0
};
var url = "http://apis.map.qq.com/ws/geocoder/v1/?";
data.output = "jsonp";
$.ajax({
type: "get",
dataType: 'jsonp',
data: data,
jsonp: "callback",
jsonpCallback: "QQmap",
url: url,
success: function (res) {
console.log(res);
MAP_GLOAP.CURR_ADR = res.result.address;// `${res.result.address_component.province}${res.result.address_component.city}${res.result.formatted_addresses.recommend}`;
MAP_GLOAP.CURR_MAP = [res.result.location.lat, res.result.location.lng]; //刷新坐标轴
RefMap();
//刷新maker
AddMark();
//刷新输入框
RefSearch();
},
error: function (err) {
// alert("服务端错误,请刷新浏览器后重试");
}
}); AddMark;
});
} window.onload = function () {
//当前ip获取地址
IpMap(); //初始化地图函数 自定义函数名init
init(); //地址查询功能
SearchMap();
}
</script>
</head> <body>
<input type="text" value="" id="mapSearch"><button id="mapSearchBT" value="">查询</button>
<!-- 显示地图的区域 -->
<div id="container"></div> </body>

  

C# 直接可用模板:

//调用

  

腾讯地图JSAPI开发demo 定位,查询的更多相关文章

  1. 有关于腾讯地图服务端IP定位接口的获取当前城市的处理

    接口说明:http://apis.map.qq.com/ws/location/v1/ip 说明里面写了ip可以缺省,然并卵,经过测试的到结果并不能获取到当前城市,理由是腾讯ip库的对应ip精度没有定 ...

  2. 百度地图 JSAPI使用 mark 定位地址 与周边覆盖物

    http://lbsyun.baidu.com/index.php?title=jspopular   api  http://developer.baidu.com/map/jsdemo.htm#a ...

  3. [微信小程序] 微信小程序获取用户定位信息并加载对应城市信息,wx.getLocation,腾讯地图小程序api,微信小程序经纬度逆解析地理信息

    因为需要在小程序加个定位并加载对应城市信息 然而小程序自带api目前只能获取经纬度不能逆解析,虽然自己解析方式,但是同时也要调用地图,难道用户每次进小程序还要强行打开地图选择地址才定位吗?多麻烦也不利 ...

  4. Taro开发微信小程序之利用腾讯地图sdk标记

    首先要下载腾讯地图提供的sdk,放在项目的对应目录下,引用. import QQMapWX from '../../sdks/qqmap-wx-jssdk' 设置好后,就可以开始使用了. let qq ...

  5. 地图API使用文档-以腾讯地图为例

    目录 腾讯地图API 2 1.API概览... 2 1.1 WebService API(官网注明是beta版本,可能不稳定,慎用):... 2 1.2 URL API:... 2 1.3 静态图AP ...

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

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

  7. H5端调起百度地图、腾讯地图app

    来自一个需求的总结: 在微信公众号中根据地图上的marker和label,或者搜索结果点击调起地图APP进行导航. 一开始是使用百度地图进行开发,后面转腾讯是因为微信不允许不是自家或者合作方的APP在 ...

  8. 微信小程序--百度地图坐标转换成腾讯地图坐标

    最近开发小程序时出现一个问题,后台程序坐标采用的时百度地图的坐标,因为小程序地图时采用的腾讯地图的坐标系,两种坐标有一定的误差,导致位置信息显示不正确.现在需要一个可以转换两种坐标的方法,经过查询发现 ...

  9. iOS开发那些事-iOS6苹果地图实用开发

    在iOS 6之后,不再使用谷歌地图了,而是使用苹果自己的地图,但是API编程接口没有太大的变化.开发人员不需要再学习很多新东西就能开发地图应用,这是负责任的做法.因此本节介绍的内容也同样适用于iOS5 ...

随机推荐

  1. 1、WebSphere Application Server的下载以及安装

    最近在做农行相关的项目,我们的后台需要发布到农行WebSphere Application Server上,因此学习一下: 一.WebSphere 是什么? WebSphere 为 SOA (面向服务 ...

  2. 凸包Graham Scan算法实现

    凸包算法实现点集合中搜索凸包顶点的功能,可以处理共线情况,可以输出共线点也可以不输出而只输出凸包顶点.经典的Graham Scan算法,点排序使用极角排序方式,并对共线情况做特殊处理.一般算法是将共线 ...

  3. 003-Spring4 扩展分析-spring类初始化@PostConstruct > InitializingBean > init-method、ApplicationContext、BeanPostProcessor、BeanFactoryPostProcessor、BeanDefinitionRegistryPostProcessor

    一.spring类初始化@PostConstruct > InitializingBean > init-method InitializingBean接口为bean提供了初始化方法的方式 ...

  4. [zookeeper]依赖jar的问题

    zookeeper是依赖以下三个jar包 log4j-1.2.17.jar slf4j-api-1.7.25.jar slf4j-log4j12-1.7.18.jar 否则会报异常:java.lang ...

  5. C语言基础:递归函数,全局(局)变量

    #include <stdio.h>int factorial(int a); int Fibonacci(a);long Hanoi(a); void main(){ } 函数递归调用: ...

  6. tomcat启动不了?

    tomcat是用Java编写的,首先需要配置好jdk虚拟机, 要安装 JDK,请转至http://www.oracle.com/technetwork/java/javase/downloads/jd ...

  7. 网络实验 04-利用三层交换机实现VLAN间路由

    利用三层交换机实现VLAN间路由 一.实验目标 掌握交换机Tag VLAN 的配置 掌握三层交换机基本配置方法 掌握三层交换机VLAN路由的配置方法 通过三层交换机实现VLAN间相互通信 二.实验背景 ...

  8. nginx +域名

    文件nginx.config: server { listen 80 ; server_name dns19.hichina.com;location / { proxy_pass http://12 ...

  9. jvm的学习笔记:二、类的初始化,代码实战(2)

    常量在编译阶段,会存在调用这个常量的方法的所在的类的常量池当中 System.out.println(MyParent2.str); 输出: hello parent2 依据:在MyTest2类调用M ...

  10. Windows Server 中配置权威时间服务器

    0" style="box-sizing: inherit; outline: none;"> 若要配置 Windows 时间服务以使用内部硬件时钟,请使用下列方法 ...