获取地址位置的几何形状
Fetch geometry of an Address Location
如果我要搜索一个文本地址(假设地址是"305 Quincy St NE"),我该如何在ArcGIS中使用Javascript的ArcGIS API ?
我的目的是调用一个函数,该函数将一个地方的几何形状作为其函数参数传递。
function showLocation(evt) {
map.graphics.clear();
var point = evt.result.feature.geometry; // how do I get this value from a textual address?
.
.
.
}
使用Locator
类。下面是一个例子:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no">
<title>Using Locator to Find Address</title>
<link rel="stylesheet" href="https://js.arcgis.com/3.14/esri/css/esri.css">
<style>
html, body, #map {
height:100%;
width:100%;
margin:0;
padding:0;
}
body {
background-color:#FFF;
overflow:hidden;
font-family:"Trebuchet MS";
}
#search {
display: block;
position: absolute;
z-index: 2;
top: 20px;
left: 75px;
}
</style>
<script src="https://js.arcgis.com/3.14/"></script>
<script>
var map;
var locator;
var symbol;
var locatorUrl = "https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer";
require([
"esri/map", "esri/tasks/locator", "esri/graphic",
"esri/Color", "esri/symbols/SimpleMarkerSymbol", "esri/symbols/SimpleLineSymbol",
"dijit/form/TextBox", "dijit/registry", "dojo/on", "dojo/parser",
"dojo/keys",
"dojo/domReady!"
], function(
Map, Locator, Graphic,
Color, SimpleMarkerSymbol, SimpleLineSymbol,
TextBox, registry, on, parser,
keys
) {
map = new Map("map",{
basemap: "topo",
center: [-117.19, 34.05],
zoom: 13
});
locator = new Locator(locatorUrl);
symbol = new SimpleMarkerSymbol(
SimpleMarkerSymbol.STYLE_CIRCLE,
20,
new SimpleLineSymbol(
SimpleLineSymbol.STYLE_SOLID,
Color.fromHex("#EEAA00"),
3),
Color.fromHex("#002255")
);
parser.parse();
var box = registry.byId("textBox_address");
on(box, "keypress", function (evt) {
if (keys.ENTER == evt.keyCode) {
var addressText = box.get("value");
//This is the important part. Call Locator.addressToLocations.
locator.addressToLocations({
address: {
SingleLine: addressText
}
}, function (addresses) {
//Success
if (0 == addresses.length) {
alert("Address not found");
} else {
var address = addresses[0];
var pt = address.location;
map.graphics.clear();
map.graphics.add(new Graphic(pt, symbol));
map.centerAt(pt);
}
}, function (error) {
//Failure
alert("Error: " + error);
});
}
});
});
</script>
</head>
<body>
<div id="search">
<label for="firstname" style="background-color: white">Address:</label>
<input type="text" name="textBox_address" value="808 Travis St, Houston TX"
data-dojo-type="dijit/form/TextBox" id="textBox_address" />
</div>
<div id="map"></div>
</body>
</html>
var address = "305 Quincy St NE";
var geocoder = new google.maps.Geocoder();
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var longitude= results[0].geometry.location.lat();
var latitude = results[0].geometry.location.lng();
}
});
关于Hiren的回答,
问题不是与纬度和经度,问题是你不能使用谷歌地理编码器与任何其他技术不同于谷歌地图:
地理编码API可以只能与Google地图结合使用;禁止对结果进行地理编码而不将其显示在地图上。为有关允许使用的完整详细信息,请参阅地图API条款服务许可限制。
你可以在这里查看:https://developers.google.com/maps/documentation/geocoding/intro
干杯!
相关文章:
- jquery试图按名称获取按钮位置
- 我可以获得相对于被点击元素的确切点击位置吗
- 谷歌地图固定位置覆盖
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 循环比赛位置算法
- es6 相当于下划线查找位置
- jQuery循环在特定位置暂停
- 引导程序:在导航栏中,显示悬停在单个位置的基于Li Link的不同内容
- 自定义函数中的光标位置
- 安卓平台上的QWebView HTML5地理位置
- DIV并排,位置不正确
- 使用jQuery更改元素的顶部位置
- 在谷歌地图上绘制位置数据库
- 跟踪jqplot垂直折线图的鼠标位置
- 设置画布渲染器的x和y位置
- 几何位置的参数格式是什么
- 高图:多系列柱形图中的位置散点图
- 道场堆叠条形/柱形图表标签位置不正确
- 谷歌地图-奇怪的几何形状.位置属性(G, K)
- 获取地址位置的几何形状