javascript - 在开放街道 map 中进行提名搜索

标签 javascript dictionary openstreetmap nominatim

我需要提名搜索方面的帮助。我需要获得特定城市最近的学校、银行、杂货店等。我在 http://wiki.openstreetmap.org/wiki/Nominatim/Special_Phrases/EN 中找到了关键词, 但我不知道它怎么用,我试着给 http://nominatim.openstreetmap.org/search?q=grocery,bangalore&format=xml&polygon=1&addressdetails=1 , 但对于某些关键字没有结果。谁能帮帮我..?

最佳答案

检查他们的 wiki entry

Why wasn't anything found for my search

There are a number of reasons why no result may have been found:

  1. There is no data currently in OSM which matches your criteria. Data which you expect to match may be defective in some way. For example, if you search for "Springfield, Massachusetts", it may not be found if the state border has been damaged and no longer encloses Springfield.
  2. The data has not yet been indexed, nominatim is normally a minimum of 2 days behind.
  3. There are significant differences in the spaces (i.e. placestrasse & place strasse)
  4. The search query is out of order (i.e. City, Street, Country) (Note: this seems to be a common German search query which currently doesn't work)
  5. The search query does not use the correct encoding

原因好像是没有符合你条件的数据

更新

特殊短语的使用方式如下。

为了找到印度的所有机场,

http://nominatim.openstreetmap.org/search?q=airports%20in%20india&format=xml

结果是

<searchresults timestamp="Thu, 02 Aug 12 12:34:41 +0100" attribution="Data Copyright OpenStreetMap Contributors, Some Rights Reserved. CC-BY-SA 2.0." querystring="airports in india" polygon="false" exclude_place_ids="43175810,7784961,7751465,12009403,106962559,668626,49996185,7799105,12685353,107628126" more_url="http://nominatim.openstreetmap.org/search?format=xml&exclude_place_ids=43175810,7784961,7751465,12009403,106962559,668626,49996185,7799105,12685353,107628126&accept-language=en-US,en;q=0.8&q=airports+in+india">
<place place_id="43175810" osm_type="way" osm_id="34863658" place_rank="30" boundingbox="26.3935852050781,26.4172687530518,80.3976287841797,80.4333038330078" lat="26.4057076136426" lon="80.4137093712447" display_name="Greter Kailash Ave, Kanpur Cantonment, Unnao, Kanpur Nagar, Uttar Pradesh, India" class="aeroway" type="aerodrome"/>
<place place_id="7784961" osm_type="node" osm_id="747215270" place_rank="30" boundingbox="20.502386322021,20.52238822937,83.436968078613,83.456975708008" lat="20.5123864" lon="83.4469754" display_name="Nuagaon Airstrip, NH201, Balangir, Balangir, Orissa, India" class="aeroway" type="aerodrome"/>
<place place_id="7751465" osm_type="node" osm_id="747078022" place_rank="30" boundingbox="24.421943893433,24.441945800781,74.859438171387,74.879445800781" lat="24.4319457" lon="74.8694404" display_name="Nimach, NH 79, Chittaurgarh, Neemuch, Madhya Pradesh, India" class="aeroway" type="aerodrome"/>
<place place_id="12009403" osm_type="node" osm_id="1042045133" place_rank="30" boundingbox="18.217125167847,18.237127075195,74.578508605957,74.598516235352" lat="18.2271264" lon="74.5885098" display_name="Baramati Airport, Satara, India" class="aeroway" type="aerodrome"/>
<place place_id="106962559" osm_type="way" osm_id="119388136" place_rank="30" boundingbox="19.0674076080322,19.0793800354004,82.0245513916016,82.0459518432617" lat="19.0733705761589" lon="82.0349698897843" display_name="NH43, Jagdalpur, Bastar, Chhattisgarh, 494001, India" class="aeroway" type="aerodrome"/>
<place place_id="668626" osm_type="node" osm_id="245717090" place_rank="30" boundingbox="23.881885757446,23.901887664795,91.231897583008,91.251905212402" lat="23.8918874" lon="91.2419012" display_name="Agartala Singerbhil Airport, Agartala, West Tripura, Tripura, India" class="aeroway" type="aerodrome"/>
<place place_id="49996185" osm_type="way" osm_id="44280184" place_rank="30" boundingbox="22.7103366851807,22.7298049926758,75.7778625488281,75.8157043457031" lat="22.7203044430038" lon="75.8015038572736" display_name="NH59, Indore, Madhya Pradesh, India" class="aeroway" type="aerodrome"/>
<place place_id="7799105" osm_type="node" osm_id="747164669" place_rank="30" boundingbox="23.578140487671,23.59814239502,74.301943054199,74.321950683594" lat="23.5881413" lon="74.3119453" display_name="Banswara Airstrip, Talwara, Banswara, Banswara, Rajasthan, India" class="aeroway" type="aerodrome"/>
<place place_id="12685353" osm_type="node" osm_id="1126264804" place_rank="30" boundingbox="9.8254778289795,9.8454787826538,78.081613769531,78.101621398926" lat="9.8354784" lon="78.0916139" display_name="Madurai Airport, Madurai Ring Road, Madurai, Tamil Nadu, India" class="aeroway" type="aerodrome"/>
<place place_id="107628126" osm_type="way" osm_id="120223227" place_rank="30" boundingbox="25.4841022491455,25.4955101013184,78.5546188354492,78.5676498413086" lat="25.4899825689522" lon="78.5611975700734" display_name="NH75, Jhansi, Jhansi, Jhansi, Uttar Pradesh, 284001, India" class="aeroway" type="aerodrome"/>
</searchresults>

同样,如果我想知道德里附近的机场(类加罗尔附近的机场没有数据),

http://nominatim.openstreetmap.org/search?q=airports%20near%20delhi&format=xml

我得到了所需的结果

<searchresults timestamp="Thu, 02 Aug 12 12:39:36 +0100" attribution="Data Copyright OpenStreetMap Contributors, Some Rights Reserved. CC-BY-SA 2.0." querystring="airports near delhi" polygon="false" exclude_place_ids="49967570,34283281,7655222,4065575" more_url="http://nominatim.openstreetmap.org/search?format=xml&exclude_place_ids=49967570,34283281,7655222,4065575&accept-language=en-US,en;q=0.8&q=airports+near+delhi">
<place place_id="49967570" osm_type="way" osm_id="44193643" place_rank="30" boundingbox="28.5804119110107,28.5891227722168,77.1994857788086,77.2125244140625" lat="28.5845082232308" lon="77.2063039751188" display_name="Brigadiar Hoshiar Singh Marg, Sarojini Nagar, New Delhi, South West Delhi, South Delhi, National Capital Territory of Delhi, 110067, India" class="aeroway" type="aerodrome"/>
<place place_id="34283281" osm_type="way" osm_id="22826678" place_rank="30" boundingbox="28.5350399017334,28.577335357666,77.0600891113281,77.133056640625" lat="28.5566876998427" lon="77.0963262062259" display_name="Indira Gandhi International, Old Delhi Gurgaon Road, Mahipalpur, Rangpuri, South West Delhi, National Capital Territory of Delhi, 110037, India" class="aeroway" type="aerodrome"/>
<place place_id="7655222" osm_type="node" osm_id="727371731" place_rank="30" boundingbox="28.542173614502,28.562175521851,77.085321655273,77.105329284668" lat="28.5521755" lon="77.0953223" display_name="Indira Gandhi International Airport, Old Delhi Gurgaon Road, Mahipalpur, Rangpuri, South West Delhi, National Capital Territory of Delhi, 110037, India" class="aeroway" type="aerodrome"/>
<place place_id="4065575" osm_type="node" osm_id="410403385" place_rank="30" boundingbox="28.574936141968,28.594938049316,77.196535339355,77.21654296875" lat="28.5849375" lon="77.206542" display_name="Safdarjung Airport, Brigadiar Hoshiar Singh Marg, Sarojini Nagar, New Delhi, South West Delhi, South Delhi, National Capital Territory of Delhi, 110067, India" class="aeroway" type="aerodrome"/>
</searchresults>

您可以附加 &polygon=1 以获取多边形点,附加 &addressdetail=1 以获取上述每个查询的基于地址的 xml。

关于javascript - 在开放街道 map 中进行提名搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11772401/

相关文章:

javascript - Google map 热图和标记

javascript - 如何安装 package.json 中没有的 npm 依赖项?

java - 为什么尽管类是可序列化的,但HashMap的哈希表标记为 transient

google-maps - OSM 到谷歌地图多边形

javascript - 如何在 leaflet.js 中的标记上添加点击事件

internet-explorer-11 - OpenLayers:在 Internet Explorer 中不起作用

javascript - 仅调用多个 select 元素的最后附加的 onchange 函数

javascript - Greasemonkey提交登录表单但用户名和密码未填写?

C++ map,找到第一个小于key的元素

c++ - 从 map 中选择随机元素子集