Geocoding result not shows when using my Locator

513
3
04-19-2011 09:13 AM
XiujuZhou
New Contributor III
I modified geocoding sample page http://help.arcgis.com/EN/webapi/javascript/gmaps/samples/locator/locator_address.html

using my locator (it is a working locator using by other applications) by changed 3 line of code like below, and no result show. Please help! :

gmap.setCenter(new GLatLng(29.7598967, -95.3670557), 12);
........
locator = new esri.arcgis.gmaps.Locator("http://gisapps.houstongims.org/ArcGIS/rest/services/Address_Locator_Zip_Appr_HCAD_Parcel2009/Geocode...");
..........
var address = {
          Street:"611 Walker st",
          Zone:"77002"
        };
0 Kudos
3 Replies
HemingZhu
Occasional Contributor III
I modified geocoding sample page http://help.arcgis.com/EN/webapi/javascript/gmaps/samples/locator/locator_address.html

using my locator (it is a working locator using by other applications) by changed 3 line of code like below, and no result show. Please help! :

gmap.setCenter(new GLatLng(29.7598967, -95.3670557), 12);
........
locator = new esri.arcgis.gmaps.Locator("http://gisapps.houstongims.org/ArcGIS/rest/services/Address_Locator_Zip_Appr_HCAD_Parcel2009/GeocodeServer");
..........
var address = {
          Street:"611 Walker st",
          Zone:"77002"
        };


Use Javascript Object instead of JavaScript Object Notation.

var address =new Object();
address.Street ="611 Walker st";
address.Zone ="77002";

locator.addressToLocations(address, callback); .....
0 Kudos
XiujuZhou
New Contributor III
Thanks Heming. But still no result shows after changing. I am wondering where the result markers come from for ESRI geocoder. Do I need to create marker for my geocoder? please see the source code:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html debug=true>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Using Geocoding Service</title>

<script src="http://maps.google.com/maps?file=api&v=2&key=DioG219lPJG3WTn3zmQqebsjVg" type="text/javascript"></script>
<script src="http://serverapi.arcgisonline.com/jsapi/gmaps/?v=1.6" type="text/javascript" ></script>

<script type="text/javascript">

var gmap = null;
var locator = null;
var mapExtension = null;
var gOverlays = null;

function initialize() {

gmap = new GMap2(document.getElementById('gmap'));
gmap.addMapType(G_NORMAL_MAP);
gmap.addMapType(G_SATELLITE_MAP);
gmap.addControl(new GLargeMapControl());
gmap.addControl(new GMapTypeControl());
gmap.setCenter(new GLatLng(29.76, -95.36),12); // Redlands (Point)
mapExtension = new esri.arcgis.gmaps.MapExtension(gmap);
locator = new esri.arcgis.gmaps.Locator("http://gisapps.houstongims.org/ArcGIS/rest/services/Address_Locator_Zip_Appr_HCAD_Parcel2009/Geocode...");
}

function findAddress() {
mapExtension.removeFromMap(gOverlays);

var address = new Object();
address.Street="611 Walker";
address.Zone= "77002";
var outFields = ["Street"];
locator.addressToLocations(address, outFields, false, mycallback);
}
function mycallback(addressResults) {
gOverlays = mapExtension.addToMap(addressResults);
}
</script>

</head>
<body onload="initialize();" onunload="GUnload();">
<table width="100%" height="100%">
<tr>
<td align="center">
<table>
<tr align="left">
<td>
<input type="button" value="Find Address" onclick="findAddress();" /> 
<input type="button" value="Clear Map Overlays" onclick="mapExtension.removeFromMap(gOverlays);" />
</td>
</tr>
<tr align="left" valign="top">
<td>
<div id="gmap" style="width: 500px; height:500px;"></div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
0 Kudos
HemingZhu
Occasional Contributor III
Thanks Heming. But still no result shows after changing. I am wondering where the result markers come from for ESRI geocoder. Do I need to create marker for my geocoder? please see the source code:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html debug=true>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Using Geocoding Service</title>

<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=DioG219lPJG3WTn3zmQqebsjVg" type="text/javascript"></script>
<script src="http://serverapi.arcgisonline.com/jsapi/gmaps/?v=1.6" type="text/javascript" ></script>

<script type="text/javascript">

var gmap = null;
var locator = null;
var mapExtension = null;
var gOverlays = null;

function initialize() {

gmap = new GMap2(document.getElementById('gmap'));
gmap.addMapType(G_NORMAL_MAP);
gmap.addMapType(G_SATELLITE_MAP);
gmap.addControl(new GLargeMapControl());
gmap.addControl(new GMapTypeControl());
gmap.setCenter(new GLatLng(29.76, -95.36),12); // Redlands (Point)
mapExtension = new esri.arcgis.gmaps.MapExtension(gmap);
locator = new esri.arcgis.gmaps.Locator("http://gisapps.houstongims.org/ArcGIS/rest/services/Address_Locator_Zip_Appr_HCAD_Parcel2009/GeocodeServer");
}

function findAddress() {
mapExtension.removeFromMap(gOverlays);

var address = new Object();
address.Street="611 Walker";
address.Zone= "77002";
var outFields = ["Street"];
locator.addressToLocations(address, outFields, false, mycallback);
}
function mycallback(addressResults) {
gOverlays = mapExtension.addToMap(addressResults);
}
</script>

</head>
<body onload="initialize();" onunload="GUnload();">
<table width="100%" height="100%">
<tr>
<td align="center">
<table>
<tr align="left">
<td>
<input type="button" value="Find Address" onclick="findAddress();" /> 
<input type="button" value="Clear Map Overlays" onclick="mapExtension.removeFromMap(gOverlays);" />
</td>
</tr>
<tr align="left" valign="top">
<td>
<div id="gmap" style="width: 500px; height:500px;"></div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>


You can get the geocoded point by using addressResults.addressCandidates[0].location.getLatLng(); and then signed the marker and add to the map.. Here is part of my code, hope it will help:
{
......
var locator = new esri.arcgis.gmaps.Locator(duvalGoogleApp.locatorDirectory);
   
    var address =new Object();
    address.Street =fmAddress;
    locator.addressToLocations(address, null, false, getToAddress);
}
function getToAddress(addressResults)
{
    if (addressResults.addressCandidates.length>0)
    {
         duvalGoogleApp.fPoint =addressResults.addressCandidates[0].location.getLatLng();
         .......   
     }
    else
    {
        duvalGoogleApp.Desc.innerHTML="Can not find the From address !";
        return;
    }
}
0 Kudos