You can create a locator based on point of interests and publish it as a geocode service. JavaScript Geocoder Widget can have multiple geocode services.Or, you can tweak the geocoder widget a little bit:
//add feature key words to geocode widget search box
dojo.connect(geocoderWidget, "onAutoComplete", function (e) {
if (geocoderWidget.value.length < 4) {
return;
}
array.forEach(layerList, function (layer) {
if (layer.declaredClass === "esri.layers.FeatureLayer" && layer.visible === true) {
var keyWordField = layer.displayField;
var searchedFeatures = array.filter(layer.graphics, function (feature) {
return feature.attributes[keyWordField] ? feature.attributes[keyWordField].toLowerCase().indexOf(geocoderWidget.value.toLowerCase()) > -1 : false;
});
var result;
array.forEach(searchedFeatures, function (feature) {
result = {
feature: feature,
extent: new Extent(feature.geometry.x - 1000, feature.geometry.y - 1000, feature.geometry.x + 1000, feature.geometry.y + 1000, feature.geometry.spatialReference),
name: feature.attributes[keyWordField]
};
e.results.splice(0, 0, result);
});
}
});
if (e.results.length > 6) {
e.results.splice(6, e.results.length - 6);
}
});
dojo.connect(geocoderWidget, "onSelect", function (e) {
var query = new Query();
var fl = e.feature.getLayer();
if (!fl) {
return;
}
query.where = fl.displayField + "='" + e.name + "'";
fl.queryFeatures(query, function (result) {
var feature = result.features[0];
//now you have the selected feature
});
});