如何让 OpenLayers 从国家代码到 select 国家?
How to get OpenLayers to select a country from a country code?
我有一个使用 OpenLayers 的程序,基本上,用户输入一个三位数的国家/地区代码,然后我希望在地图上选择该国家/地区。因此,如果用户键入 "USA",则美国将在地图上被选中。我对使用 OpenLayers 很陌生,但我想我需要使用 ol.interaction.Select 来做到这一点。
一般来说,您需要:
- 与国家对应的矢量数据源,并由其三位国家代码索引。 dube's answer above points to one, and OpenLayers appears to have the same file on their site here。方便的是,这些文件使用国家代码作为特征 Id,在矢量数据源中通过 Id 查找特征是微不足道的。
- 一个 OpenLayers 地图,至少有一个包含上述源的矢量图层。
- 可选的包含图像图块的地图基础层。如果您使用矢量数据源绘制国家边界,则可以不使用此图层,使用源为国家矢量的地图图层,并使用适当的填充和轮廓样式。然而,国家/地区矢量数据非常粗糙,地图图块(OpenStreetMap、Stamen、Bing、Google 等)可能看起来更漂亮,尤其是当用户放大很多时。
- 用于突出显示的叠加层。这将是一个具有突出显示填充和轮廓样式(例如,红色或粗体,可能具有一些非透明填充颜色)的矢量图层,当用户键入可识别的国家/地区代码时,您可以向其添加和删除所选国家/地区的特征对象。
OpenLayers vector-layer 示例包含您需要的 90% 的代码。您不是观察鼠标移动,而是观察用户在其中键入国家/地区代码的文本元素的变化。
参见 this gist 示例。
我有一个使用 OpenLayers 的程序,基本上,用户输入一个三位数的国家/地区代码,然后我希望在地图上选择该国家/地区。因此,如果用户键入 "USA",则美国将在地图上被选中。我对使用 OpenLayers 很陌生,但我想我需要使用 ol.interaction.Select 来做到这一点。
一般来说,您需要:
- 与国家对应的矢量数据源,并由其三位国家代码索引。 dube's answer above points to one, and OpenLayers appears to have the same file on their site here。方便的是,这些文件使用国家代码作为特征 Id,在矢量数据源中通过 Id 查找特征是微不足道的。
- 一个 OpenLayers 地图,至少有一个包含上述源的矢量图层。
- 可选的包含图像图块的地图基础层。如果您使用矢量数据源绘制国家边界,则可以不使用此图层,使用源为国家矢量的地图图层,并使用适当的填充和轮廓样式。然而,国家/地区矢量数据非常粗糙,地图图块(OpenStreetMap、Stamen、Bing、Google 等)可能看起来更漂亮,尤其是当用户放大很多时。
- 用于突出显示的叠加层。这将是一个具有突出显示填充和轮廓样式(例如,红色或粗体,可能具有一些非透明填充颜色)的矢量图层,当用户键入可识别的国家/地区代码时,您可以向其添加和删除所选国家/地区的特征对象。
OpenLayers vector-layer 示例包含您需要的 90% 的代码。您不是观察鼠标移动,而是观察用户在其中键入国家/地区代码的文本元素的变化。
参见 this gist 示例。