基础功能---地理编码

首先需要发布地理编码服务,再调用。
还没有使用过这一功能。记录贴

贴代码:

<!DOCTYPE html>
<html lang="en">
<head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>地理编码_动态图层服务</title>
    <link rel="stylesheet" href="https://js.arcgis.com/3.28/esri/css/esri.css" />
    <script src="https://js.arcgis.com/3.28/"></script>
    <script  src="https://code.jquery.com/jquery-1.12.4.js"></script>
    <script>


        require(["esri/map","dojo/query","dojo/on","dojo/_base/array","dojo/dom",
            "esri/layers/ArcGISDynamicMapServiceLayer",
			"esri/tasks/locator",
			"esri/symbols/SimpleMarkerSymbol",
			"dojo/colors",
			"esri/InfoTemplate","esri/graphic",
            "dojo/domReady!"],
                function(Map,query,on,array,dom,ArcGISDynamicMapServiceLayer,Locator,SimpleMarkerSymbol,Color,InfoTemplate,Graphic){
                    var map = new Map("mapDiv");
                    var layer=new ArcGISDynamicMapServiceLayer("http://localhost:6080/arcgis/rest/services/demo/Practice/MapServer");
                    map.addLayer(layer);
                    query("#btn").on("click",function(){
                        //获得名称
                        var name=query(".nm")[0].value;
						//创建地理编码对象
						var locator = new Locator("http://localhost:6080/arcgis/rest/services/demo/nameLoc_geo/GeocodeServer");
						//参数和服务的参数对应
						var address = { "Single Line Input": name}; 
						//输出的空间参考
						locator.outSpatialReference = map.spatialReference; 
						var options = { 
							address: address, 
							outFields: ["*"] 
						} 
						//执行方法
						locator.addressToLocations(options,function(candidates){
							//获得运行之后的信息
							if (candidates.length > 0){
									var htmls = "<table style='width: 100%'>"; 
									htmls = htmls + "<tr bgcolor='#E0E0E0'><td>X 坐标</td><td>Y 坐标</td><td>得分</td></tr>"; 
									array.forEach(candidates, function (candidate, index) {  
										if (index % 2 == 1) { 
											htmls = htmls + "<tr  bgcolor='#E0E0E0'><td style='width: 60px'>" + candidate.location.x + "</td><td style='width: 60px'>" + candidate.location.y+ "</td><td>" + candidate.score + "</td></tr>"; 
										} else { 
											htmls = htmls + "<tr><td style='width: 60px'>" + candidate.location.x + "</td><td style='width: 60px'>" + candidate.location.y+ "</td><td>" + candidate.score + "</td></tr>";
										} 										
									}); 
									htmls = htmls + "</table>"; 
									dom.byId("divShowResult").innerHTML = htmls;
							}
                        },function(error){alert(error)});
                    });								
				});
                       
                              
    </script>
</head>
<body class="tundra">
<div id="mapDiv" style="width:900px; height:580px; border:1px solid #000;"></div>
    Name:<input class="nm" type="text">
    <input id="btn" type="button" value="定位">
	<div id="divShowResult"></div>
</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值