Google Maps JavaScript API V3 根据地址 加载地图

简介:

效果图如下: 
             Google Maps JavaScript API V3 根据地址 加载地图

 

javascript代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>
无标题文档
</title>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false">
</script>
<script type="text/javascript">
var geocoder;
var map;
var query = "香港 湾仔 维多利亚公园";
var display = "<b>单位:</b> 维多利亚公园";
function initialize() {
geocoder = new google.maps.Geocoder();
var myOptions = {
zoom: 17,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
codeAddress();
}
function codeAddress() {
var address = query;
geocoder.geocode({
'address': address
}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
var infowindow = new google.maps.InfoWindow({
content: "<b>地址:</b>" + address + "<br>" + display
});
infowindow.open(map, marker);
} else {
alert("未能解析该地址的原因: " + status);
}
});
}
</script>
</head>
<body onload="initialize()">
<div id="map_canvas" style="width:500px; height:400px">
</div>
</body>



新封装版本:
复制代码
var map; var geocoder = new google.maps.Geocoder();  /* * *-25.363882,131.044922 *初始地图  */
function initialize(lat1, lng1, zoom, canvas_div) {     var myLatlng = new google.maps.LatLng(lat1, lng1);     var myOptions = {         zoom: zoom,         center: myLatlng,         mapTypeId: google.maps.MapTypeId.ROADMAP     }     map = new google.maps.Map(document.getElementById(canvas_div), myOptions); }  // 根据坐标点 mark 标记 在初始地图时function placeMarker(latLng,html) {     var marker = new google.maps.Marker({         position: latLng,         map: map,         cursor: "1",         flat: true,         draggable: false,         clickable: true,         visible: true     });     map.setCenter(latLng);     var infowindow = new google.maps.InfoWindow({ content: html });     //  infowindow.setPosition(latLng);    infowindow.open(map, marker); }
// 根据地址获取坐标function codeAddress(latitude, longitude,html, address, Fun) {     if (0 == latitude || 0 == longitude) {         if (geocoder) {             geocoder.geocode({ 'address': address }, function (results, status) {                 if (status == google.maps.GeocoderStatus.OK) {                     Fun(results[0].geometry.location, html);                 } else {
                    Fun(latLng,html);                      // .return false;                     // alert("Geocode was not successful for the following reason: " + status);                }             });         }     } else {         placeMarker(new google.maps.LatLng(latitude, longitude),html);     } }
复制代码

调用:

复制代码
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script src="Scripts/gmap.js" type="text/javascript"></script>
 $( function () {
        initialize('0.000000', '0.000000', 16, 'map_canvas');
           var html = 'xxx';
        codeAddress('0.000000', '0.000000',html, addr, placeMarker);       
    });
复制代码

 

百度:

复制代码
请求接口中有四个参数:
其中,from和to对应的值分别是:0真实坐标;2google坐标;4baidu坐标。
from:被转换的坐标体系
to:转换到这个坐标体系
x:经度
y:纬度
复制代码
复制代码
//GPS经纬度转换为百度坐标
//gps:        http://api.map.baidu.com/ag/coord/convert?from=0&to=4&x=lng&y=lat
//google:     http://api.map.baidu.com/ag/coord/convert?from=2&to=4&x=lng&y=lat
//例子:       http://api.map.baidu.com/ag/coord/convert?from=0&to=4&x=116.397428&y=39.90923
            string s = bind("MTE2LjQxMDA0OTUwNTY2", "MzkuOTE2OTc5NTE5ODcz");
                //116.41004950566,39.916979519873


        protected string bind(string a,string b)
        {
           return Base64Decode(a) + "," + Base64Decode(b);
        }
        public static string Base64Encode(string AStr)
        {
            return Convert.ToBase64String(Encoding.UTF8.GetBytes(AStr));
        }
        public static string Base64Decode(string ABase64)
        {
            return Encoding.UTF8.GetString(Convert.FromBase64String(ABase64));
        }
复制代码


    本文转自曾祥展博客园博客,原文链接: http://www.cnblogs.com/zengxiangzhan/archive/2011/08/29/2157206.html ,如需转载请自行联系原作者

相关文章
|
19天前
|
JavaScript 前端开发 API
常用JavaScript 数组 API大全
常用JavaScript 数组 API大全
39 0
|
19天前
|
缓存 API 定位技术
使用Python调用百度地图API实现地址查询
使用Python调用百度地图API实现地址查询
150 0
|
19天前
|
API
egg.js 24.2写第一个api接口
egg.js 24.2写第一个api接口
72 0
|
17天前
|
设计模式 JavaScript API
Vue.js的provide/inject API实现了依赖注入
【5月更文挑战第17天】Vue.js的provide/inject API实现了依赖注入,允许父组件向深层子组件传递依赖,降低耦合,提高代码可维护性和测试性。通过provide选项提供依赖,如`provide: {foo: &#39;foo&#39;, bar: this.bar}`,子组件通过inject选项接收,如`inject: [&#39;foo&#39;, &#39;bar&#39;]`。适用于跨组件共享数据、插件开发和高阶组件。然而,应谨慎使用以防止过度复杂化代码结构。
25 0
|
19天前
|
Web App开发 JavaScript NoSQL
深入浅出:构建基于Node.js的RESTful API
在当今快速发展的互联网时代,RESTful API已成为前后端分离架构中不可或缺的一部分。本文旨在为初学者和中级开发人员提供一个清晰、简洁的指南,详细介绍如何使用Node.js构建一个高效、可维护的RESTful API。通过结合实际案例,本文将从API设计理念出发,深入讲解如何利用Express框架及MongoDB数据库实现API的增删改查功能,同时探讨如何通过JWT进行安全认证,确保数据传输的安全性。此外,文章还将简要介绍如何使用Swagger生成API文档,使得API的测试和维护更加便捷。无论你是希望提升现有项目的API设计,还是想从零开始构建一个新项目,本文都将为你提供一条清晰的道路
|
6天前
|
JSON JavaScript 中间件
利用Node.js和Express构建RESTful API服务
利用Node.js和Express构建RESTful API服务
15 0
|
10天前
|
前端开发 JavaScript 中间件
基于最新koa的Node.js后端API架构与MVC模式
基于最新koa的Node.js后端API架构与MVC模式
24 1
|
15天前
|
Web App开发 存储 开发框架
使用Node.js构建RESTful API
【5月更文挑战第20天】本文指导使用Node.js和Express构建RESTful API。首先确保安装了Node.js,然后初始化项目,安装Express框架。在`app.js`中创建API,定义GET路由`/api/users`返回用户列表。运行服务器并测试API,最后讨论如何扩展API和提升其功能。这是一个构建RESTful API的基础入门教程。
|
17天前
|
定位技术 API
Angular 调用导入百度地图API接口,2024春招BAT面试真题详解
Angular 调用导入百度地图API接口,2024春招BAT面试真题详解
|
18天前
|
数据可视化 JavaScript 定位技术
Cesium第1篇,CesiumJS第1篇,CesiumJS使用详细,在vue中使用Cesium.js(WebGIS中的Cesium地图可视化应用)
Cesium是一种基于WebGL开源的虚拟地球技术,可以用于构建高性能、跨平台的三维地球应用程序,它支持多种数据格式和地图服务,可以实现地球表面的高精度渲染、地形分析、数据可视化等功能。Cesium还提供了丰富的API和插件,方便开发者进行二次开发和定制化,且可免费商用,在航空航天、国防、城市规划、教育等领域得到了广泛应用。
58 0
Cesium第1篇,CesiumJS第1篇,CesiumJS使用详细,在vue中使用Cesium.js(WebGIS中的Cesium地图可视化应用)