1、服务端
package com.test.currentplace;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URL;
import java.nio.charset.Charset;
import org.json.JSONObject;
public class CurrentPlace {
private static String readAll(Reader rd) throws IOException {
StringBuilder sb = new StringBuilder();
int cp;
while ((cp = rd.read()) != -1) {
sb.append((char) cp);
}
return sb.toString();
}
public static JSONObject readJsonFromUrl(String url) throws Exception {
InputStream is = new URL(url).openStream();
try {
BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")));
String jsonText = readAll(rd);
JSONObject json = new JSONObject(jsonText);
return json;
} finally {
is.close();
}
}
public static void main(String[] args) throws Exception {
JSONObject json = readJsonFromUrl("http://api.map.baidu.com/location/ip?ak=服务器端akXXXXX");
System.out.println(json.toString());
}
}
2、javascript
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Hello, World</title>
<style type="text/css">
html {
height: 100%
}
body {
height: 100%;
margin: 0px;
padding: 0px
}
#container {
height: 50%
}
</style>
<script type="text/javascript" src="jquery.js"> </script>
<script type="text/javascript" >
$(function(){
$('#getPoint').click(function(){
if($('#address').val() == ''){
alert('请填写一个地址');
}
var adds = $('#address').val();
getPoint(adds);
});
function getPoint(adds){
// 创建地址解析器实例
var myGeo = new BMap.Geocoder();
// 将地址解析结果显示在地图上,并调整地图视野
myGeo.getPoint(adds, function(point){
$('#shopcoord').val(JSON.stringify(point));
}, "北京市");
}
});
</script>
<script type="text/javascript"
src="http://api.map.baidu.com/api?v=2.0&ak=your_script_key">
//v2.0版本的引用方式:src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"
//v1.4版本及以前版本的引用方式:src="http://api.map.baidu.com/api?v=1.4&key=您的密钥&callback=initialize"
</script>
</head>
<body>
<div id="container"></div>
<script type="text/javascript">
var map = new BMap.Map("container"); // 创建地图实例
var point = new BMap.Point(100.563581, 29.001249); // 创建点坐标 北京的
//var point = new BMap.Point(13027301.49, 4369219.64); // 创建点坐标
map.centerAndZoom(point, 15); // 初始化地图,设置中心点坐标和地图级别
map.addControl(new BMap.NavigationControl()); //NavigationControl:地图平移缩放控件,PC端默认位于地图左上方,它包含控制地图的平移和缩放的功能。移动端提供缩放控件,默认位于地图右下方。
map.addControl(new BMap.ScaleControl()); // ScaleControl:比例尺控件,默认位于地图左下方,显示地图的比例关系。
map.addControl(new BMap.OverviewMapControl()); // OverviewMapControl:缩略地图控件,默认位于地图右下方,是一个可折叠的缩略地图。
map.addControl(new BMap.MapTypeControl()); // 地图类型控件,默认位于地图右上方。
map.addControl(new BMap.CopyrightControl()); //版权控件,默认位于地图左下方。
//map.addControl(new BMap.GeolocationControl()); //定位控件,针对移动端开发,默认位于地图左下方.
map.enableScrollWheelZoom(); //启用滚轮放大缩小,默认禁用
map.enableContinuousZoom(); //启用地图惯性拖拽,默认禁用
var marker = new BMap.Marker(point); // 创建标注
map.addOverlay(marker);
</script>
<input placeholder="请输入商铺地址" id="address" required="true" type="text" />
<input placeholder="点击自动获取坐标" readonly="true" id="shopcoord" type="text" />
<input id="getPoint" type="button" value="获取坐标" />
</body>
</html>
这里调用百度的ip定位api服务 详见 http://api.map.baidu.com/lbsapi/cloud/ip-location-api.htm。
另附上jsonobject jar 包
来源:http://blog.csdn.net/xyw591238/article/details/50803582