-4

場所の緯度と経度を取得する方法。

入力:ユーザーは場所の名前を入力します。

出力:ユーザーが入力した場所の緯度と経度。

注意点:

それは無料でなければならず(グーグルのようではありません)、また1日あたり2000万以上のリクエストをサポートする必要があります。ソリューションは、オンライン(api、javascript)またはオフライン(text、.csvファイル)の任意のタイプにすることができます

Already gone through the Mapquest,openstreet Map services but in the case of Mapquest they need money and in case of openstreet limit is on the number of queries

I m looking for a solution like use the tiles of the map from mapquest, use the leaflet javascript or openlayer javascript to send query to the mapquest server which is free as per my search but the problem is that to request the map we need to give them latitude and longitude of the location (geo-code of the location) on the basis of which they provide the tiles maintaining the database for this is not good step because on the basis of location there are lots of places with the same name in all over the world .. but we need the geo code of the location same or approximately 90% correct in comparison of the google.


4

2 に答える 2

5

Openstreetmap

または、openstreetmapデータを使用できます。彼らはそれを備えた世界的なデータベースを持っており、そのすべてが23Gです

そのすべてをダウンロードして、好きなように使用できます。

Geo :: Parse :: OSMを使用して、openstreetmapから取得した23ギガバイトのOSMファイルを解析できます。

アドホックソリューション

緯度/経度の場所でジオコーディングする場合は、Postgresqlでテーブルを作成し、空間インデックスを作成することをお勧めします。Maxmindがデータベースに持っているすべてのものをそのテーブルに入れることができます(以下を参照)、またはOpenstreetmapからのデータを入れることができます(以下を参照)。次に、そのテーブルをすばやく検索できます。Postgresqlには、おそらくクアッドツリーデータ構造などがあり、そのテーブルのエントリを簡単に検索できます。

これは、テーブル内のデータに空間的にインデックスを付ける方法と、そのデータに対して実行できるクエリの種類を示す別のプレゼンテーションです。次に例を示します。

create table pubs (name varchar,beer_price float4);
addgeometrycolumn(‘beer_db’,'pubs','location’,2167,'POINT',3);
insert into pubs values ( 'Garricks Head', 4.50, 
     GeometryFromText( 'POINT (1196131 383324)’   ,2167));

select name, beer_price, 
distance(location, GeometryFromText('POINT(1195722 
383854)',2167)) 
from pubs order by beer_price;

  name           | beer_price |     distance     
  ---------------+------------+------------------
  Fireside       |       4.25 | 1484.10275160491
  The Forge      |       4.33 | 1533.06561109862

別の問題にぶつかる可能性があります。つまり、都市は、定義方法に応じて点、円、または多角形になる可能性があるため、緯度/経度とは正確にはどういう意味ですか。都市の緯度/経度から特定の半径のポイントが必要な場合があります。

Maxmind

私はそれがあなたが場所によって何を意味するかによると思います。都市、国、州、郵便番号、市外局番などを話している場合は、Maxmind Webサービスを使用してください。そのリンクには、Maxmindのクエリに関する情報があります。ただし、それらから購入できるライセンスキーが必要です。

また、そのサービスをクエリするためのCAPIもあります。

または、オフラインで使用する場合は、無料のオフラインMaxminddbを入手できます。

グーグルマップ

ストリートレベルでジオロケートする場合は、GoogleMapsAPIを使用することをお勧めします。非常に多くのリクエストを実行したい場合は、支払いが必要なAPIキーが必要になります。

彼らはまた、ここで詳細な比較を見ることができるビジネスパッケージを持っています。1日あたり100,000のアドレスを見つけることができます。

于 2013-03-06T11:10:59.830 に答える
1

ストリートマップを開く。無料の世界地図。データは無料でダウンロードでき(Google とは異なり)、オープン ライセンスの下で使用できます。

これはあなたの世界を揺るがすでしょう:)

于 2013-03-06T11:19:30.570 に答える