如何让OpenLayers从国家/地区代码中选择国家/地区?

时间:2017-12-10 23:44:37

标签: openlayers

我有一个使用OpenLayers的程序,基本上,用户输入一个三位数的国家代码,然后我希望在地图上选择该国家/地区。因此,如果用户键入“USA”,则会在地图上选择美国。我对使用OpenLayers很新,但我认为我需要使用ol.interaction.Select来做到这一点。

1 个答案:

答案 0 :(得分:0)

一般来说,你需要:

  1. 与国家/地区对应的矢量数据源,并以其三位数国家/地区代码编制索引。 dube上面的答案指向一个,而OpenLayers似乎在其网站here上拥有相同的文件。方便的是,这些文件使用国家/地区代码作为功能ID,在矢量数据源中按ID查找功能非常简单。
  2. 一个OpenLayers地图,至少包含一个包含上述来源的矢量图层。
  3. 可选地包含图像切片的地图的基础图层。如果使用矢量数据源绘制国家边界,使用源为国家矢量的地图图层,并使用适当的填充和轮廓样式,也可以不使用此图层。但是,国家矢量数据相当粗糙,地图图块(OpenStreetMap,Stamen,Bing,Google等)可能看起来更漂亮,特别是如果用户放大了很多。
  4. 用于突出显示的叠加层。这将是一个带有突出显示填充和轮廓样式的矢量图层(例如,红色或粗体,可能带有一些非透明填充颜色),当用户键入可识别的国家/地区代码时,您可以向其添加和删除所选国家/地区的要素对象。
  5. OpenLayers vector-layer示例包含您需要的90%的代码。您可以观察用户键入国家/地区代码的文本元素的更改,而不是观察鼠标移动。

    有关示例,请参阅this gist