如何通过google map api实现地图定位
1. 通过 IP 得到地址
2. JavaScript下使用地理译码
var map = new GMap2(document.getElementById("map"));
var geocoder = new GClientGeocoder();
function showAddress(address) {
geocoder.getLatLng(
address,
function(point) {
if (!point) {
alert(address + " not found");
} else {
map.setCenter(point, 13);
var marker = new GMarker(point);
map.addOverlay(marker);
marker.openInfoWindowHtml(address);
}
}
);
}
google map api 求告诉如何设定随机目的地。
获取两点间的实际行车路径主要是使用谷歌地图的DirectionsService服务。
//显示实际行车路线
function showpath() {
var directionsService = new google.maps.DirectionsService(); //实例构造
var directionsDisplay = new google.maps.DirectionsRenderer({ markerOptions: {
'map': map
}//行车路线
});
directionsDisplay.setMap(map);
var request = {
origin: pointArr[0], //起点
destination: pointArr[temp], //终点
optimizeWaypoints: false, //为true,重新排列中间路标顺序,最大程度降低路线整体成本
travelMode: google.maps.TravelMode.DRIVING, //驾车路线
unitSystem: google.maps.UnitSystem.METRIC//单位为米
};
directionsService.route(request, function (response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirection

如何采用离线的 Google Map API 加载离线谷歌地图的方法
如何采用离线的 Google Map API 加载离线谷歌地图的方法
一、下载示例数据
安装万能地图下载器以后,软件启动时会显示选择在线地图的对话框,请选择“卫星.谷歌”即会显示在线的谷歌卫星地图窗口。
由于只是为了作演示说明如何用 Google Map 离线 API 加载谷歌地图的方法,这里我们只需要框选中国范围,即点击工具栏上的“框选下载区域”,然后在视图中绘制选择范围。
在范围中双击鼠标左键,显示新建任务对话框,在该对话框中我们只选择1到7级进行下载即可。
点击“确定”按钮,开始下载卫星地图数据。
下载完成后导出瓦片数据,选择导出类型为“瓦片: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”文件进行进一步开发。
GoogleMap v3 API详解,该怎么解决
我曾经用这个做过google离线地图的展示和渲染,下面是相关代码:
加载本地地图的函数:
function LocalMapType() {}
LocalMapType.prototype.tileSize = new google.maps.Size(256, 256);
LocalMapType.prototype.maxZoom = 13; // 地图显示最大级别
LocalMapType.prototype.minZoom = 9; // 地图显示最小级别
LocalMapType.prototype.name = "本地"; // 本地按钮,就是离线地图
LocalMapType.prototype.alt = "显示本地地图"; // 显示本地地图可能会出现不清晰的现象
LocalMapType.prototype.getTile = function(coord, zoom, ownerDocument) {
var img = ownerDocument.createElement("img");
img.style.width = this.tileSize.width + "px";
img.style.height = this.tileSize.height + "px";
// 访问本地图片的算法,不同的地图切图工具对应的算法不同
var strURL = "gmap/tiles/" + zoom + "/" + coord.x + "/" + coord.y + ".png";
img.src = strURL;
return img;
};
var localMapType = new LocalMapType();
初始化地图函数:
function initialize() {
// 以该经纬度为中心居中显示,注意google 一般先写纬度,在写经度
var myLatlng = new google.maps.LatLng(30.51667,114.31667);
var myOptions = {
center: myLatlng,
zoom: 10, // 初始化地图默认级别
streetViewControl: false, // 默认不显示全景图
mapTypeControlOptions: {
mapTypeIds: ["local", google.maps.MapTypeId.ROADMAP] // 地图类型为普通街道地图
}
};
var map = new google.maps.Map(document.getElementById("map_canvas"),myOptions);
map.mapTypes.set('local', localMapType);
map.setMapTypeId('local');
// 设置地图瓦片大小为256*256
map.overlayMapTypes.insertAt(0, new CoordMapType(new google.maps.Size(256, 256)));
html代码:
body onload="initialize()"
div id="map_canvas" style="width: 80%; height: 630px;"/div
/body
在离线的情况下渲染离线地图:
1.加载图片:
var image = 'icon/0.png'; // 存放图片的路径
var myLatLng = new google.maps.LatLng(30.51667,114.31667); // 图片显示的地方
var beachMarker = new google.maps.Marker({
position: myLatLng,
map: map,
icon: image
});
2.画折线:
var flightPlanCoordinates = [
new google.maps.LatLng(30.51667,114.31667),
new google.maps.LatLng(30.50667,114.32667),
new google.maps.LatLng(30.40667,114.30667)
];
var flightPath = new google.maps.Polyline({
path: flightPlanCoordinates,
strokeColor: "#FF0000",
strokeOpacity: 1.0,
strokeWeight: 2
});
flightPath.setMap(map); // 如果想还原去掉折线用:flightMap.setMap(null)
3.画圆:
var citymap = {};
citymap['chicago'] = {
center: new google.maps.LatLng(31.18439, 121.49454),
population: 284259
};
citymap['newyork'] = {
center: new google.maps.LatLng(31.38439, 121.52454),
population: 814319
};
var cityCircle;
for (var city in citymap) {
var populationOptions = {
strokeColor: "#FF0000",
strokeOpacity: 0.8,
strokeWeight: 1,
fillColor: "#FF0000",
fillOpacity: 0.35,
map: map,
center: citymap[city].center,
radius: citymap[city].population / 1000
};
cityCircle = new google.maps.Circle(populationOptions);
}
4.画多边形:
// 如果是多边形,最后一个点不需要写成第一个点就可以自动连起来
var triangleCoords = [
new google.maps.LatLng(30.51667,114.31667),
new google.maps.LatLng(30.50667,114.42667),
new google.maps.LatLng(30.40667,114.30667)
];
bermudaTriangle = new google.maps.Polygon({
paths: triangleCoords,
strokeColor: "#FF0000",
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: "#FF0000",
fillOpacity: 0.35
});
bermudaTriangle.setMap(map);
希望对你有用。
Google map api的问题拜托各位了 3Q
用的是JavaScript 通过地址查找主要用到geocoder: function showAddress(address) { if (geocoder) { geocoder.getLatLng( address, function(point) { if (!point) { alert('不能解析:'+address); } else { map.setCenter(point, 18);//18是地图显示等级 marker = new GMarker(point); map.addOverlay(marker); } } 其他代码就看gmap api 要完整才能显示的。 经纬度显示在地图上这个就很简单了,API有简单的例子: 批量读取的话,可以用个for来循环就可以了 for (var i = 0; i lat_x.length; i++) { var latlng = new GLatLng(lat_x[i],lat_y[i]); map.addOverlay(createMarker(latlng, i)); } 代码: function initialize() { if (GBrowserIsCompatible()) { var map = new GMap2(document.getElementById("map_canvas")); map.setCenter(new GLatLng(lat_x[0],lat_y[0]), 12); map.addControl(new GLargeMapControl()); map.addControl(new GScaleControl()); map.addControl(new GMapTypeControl()); for (var i = 0; i lat_x.length; i++) { var latlng = new GLatLng(lat_x[i],lat_y[i]); map.addOverlay(createMarker(latlng, i)); } } } var baseIcon = new GIcon(); baseIcon.shadow = " "; baseIcon.iconSize = new GSize(15, 15); baseIcon.shadowSize = new GSize(20, 17); baseIcon.iconAnchor = new GPoint(9, 12); baseIcon.infoWindowAnchor = new GPoint(9, 2); baseIcon.infoShadowAnchor = new GPoint(18, 25); function createMarker(point, index) { // Create a lettered icon for this point using our icon class var letteredIcon = new GIcon(baseIcon); var number=index+1; letteredIcon.image = "/hotel/gmapimg/h_"+number+".gif"; // 设置 GMarkerOptions 对象 var hotellist=hotels[index].split("|"); markerOptions = { icon:letteredIcon,title:hotellist[2] }; var marker = new GMarker(point, markerOptions); var showmessage_text="table width='380' cellspacing='0' cellpadding='0' border='0'tbodytrtd width='105' rowspan='2'a href='"+hotellist[1]+"'img style='padding:2px; border: 1px solid #eee;' src="+hotellist[3]+" alt='"+hotellist[2]+"' width='80' height='60' border='0' //a/tdtd a href='"+hotellist[1]+"' class='blue_a'span class='blue font14 bold' "+hotellist[2]+"/span/a span class='cheng'"+hotellist[6]+"/span/td/trtrtd"+hotellist[5]+"/td/trtrtd colspan='2'table width='99%'trtddiv id=showinfo/div/td/tr/table/td/tr/tbody/table"; GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml(showmessage_text); setTimeout("show("+hotellist[0]+")",100); }); marks[number]=marker; mess[number]=showmessage_text; hid[number]=hotellist[0]; return marker; }
关于Google map api 开发
google map里没有这样的函数判断位置和所在区域的关系,只能够构造一个规则的区域如矩形,根据矩形区域四个顶点的经纬度数据确定边界。如果是不规则边界如省界,则需要通过自己描边界,边界一般保存成KML格式文件再和该区域地址做个关联,加载该地址经纬度时同时也加载上关联的kml文件。
googlemap导航api的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于googlemaps谷歌地图、googlemap导航api的信息别忘了在本站进行查找喔。
