我正在为用户实施一种指定时区的方法。那里什么新鲜事。当用户需要从几百个选项的列表中进行选择时,我想听听人们说处理案例的好策略,但可能不会立即知道列表中的正确值。我知道我可以使用像自动完成这样的东西,但这只有在人们知道他们在寻找什么的情况下才有用。肯定的国家应该是显而易见的但是......最低的共同点(有些人是愚蠢的......像我一样;)。
有超过400个不同的iso时区(不包括EST,PST等我不包括的东西)。这是一个很长的清单。如果我们让用户首先选择他们所在的国家,另一个选择菜单,则可以方便地划分。但是有200多个国家。那么如何展示200个容易和高效的国家呢?
我已经在jar中创建并打包了许多类,以便从Olson时区文件(iso3166.tab和zone.tab)中读取并提供时区和时区的arraylists,包括将指定国家/地区列为优先级名单。但现在我想学习更好的方式来展示国家和时区。我自己这样做了,因为我发现它是一种更简单,更清晰的方法来提取和关联国家/地区代码和时区代码。
答案 0 :(得分:0)
根据您的特殊要求,我可以考虑使用像您在以格林威治为中心的Ubuntu这样的Linux发行版中看到的世界地图。然后为您拥有的数据放置标记,并让用户选择最近的标记。
请参阅Ubuntu
的时区选择为此,您可以使用Primefaces GMAP组件并添加如下叠加层:
LatLng coord1 = new LatLng(36.885233, 30.702323);
PlaceResult placeResultObj1 = new new PlaceResult("660")
//Basic marker
simpleModel.addOverlay(new Marker(coord1, "Konyaalti", placeResultObj1));
PlaceResult.java
public class PlaceResult {
private String utc_offset;
public PlaceResult(String utc_offset){
this.utc_offset = utc_offset;
}
public String getUtc_offset() {
return utc_offset;
}
public void setUtc_offset(String utc_offset) {
this.utc_offset = utc_offset;
}
}
另一种方法是使用Google地图中的地方信息库。使用它可以通过各种方法获取google.maps.places.PlaceResult
对象,我喜欢自动完成功能,您可以在其中选择城市。选择城市后,您可以在infowindow中显示utc_offset。
您可以查看此demo
目前,似乎大多数城市都没有设置utc_offset。我发现有一个utc_offset的地址是
澳大利亚纽威机场接送班车。然后,您可以将off_set作为输入隐藏参数传递,以将值提交给服务器。
另见: