2012-07-09 13 views
7

Tôi đang làm việc trên một dự án liên quan đến khối lượng dữ liệu thời gian thực khổng lồ trong một giây (đạt được bằng các ổ cắm web). Bởi vì điều này, nó không thể xử lý gọi API của Google để chuyển đổi một City + Region thành một tọa độ longlat. Tôi nhận được khoảng 1 đến 100 tỷ lệ thành công. Có sự thay thế không giới hạn nào đối với dịch vụ Khu vực & Vùng để Tọa độ của Google API không? Lý tưởng nhất là một mảng JSON được lưu trữ cục bộ của dữ liệu đó?Cách thay thế cho API vị trí địa lý của Google Maps

Trả lời

2

Thông thường khi bạn đang xử lý một số lượng lớn các điểm dữ liệu, bạn sẽ mã hóa địa lý một lần trên máy chủ. Sau đó, bạn có thể truyền các lat/longs cho khách hàng của bạn sẵn sàng để sử dụng.

Google có số Geocoding web service bạn có thể sử dụng từ máy chủ của mình nhưng có giới hạn yêu cầu là 2.500/ngày. Nếu điều đó không hiệu quả, bạn cũng có thể xem trong số điện thoại Nominatim của OSM; Mapquest hosts dịch vụ web không có giới hạn.

+0

Một giải pháp không tăng giới hạn cuộc gọi API, chúng tôi luôn có thể mua phụ cấp hơn, nhưng đó là yêu cầu cao/giây chỉ là không thể đạt được. Tôi đồng ý rằng chúng tôi cần thông tin này trong dữ liệu được truyền trực tuyến nhưng hiện tại chúng tôi không thể thực hiện được điều này, tôi hy vọng có một liên kết đến một mảng Open Sourced của thông tin đó. –

+0

Nếu bạn không thể sửa đổi nguồn dữ liệu, bạn luôn có thể ủy quyền luồng dữ liệu. Để máy chủ của bạn kết nối với nguồn dữ liệu, thực hiện mã hóa địa lý, sau đó truyền dữ liệu + tọa độ cho khách hàng. – josh3736

3

Hãy xem datasciencetoolkit.org. Họ cung cấp một hình ảnh VM/AMI mà bạn có thể lưu trữ trên EC2 và thực hiện cuộc gọi định vị đến máy chủ của riêng bạn và do đó không có giới hạn API.

Sau đó, cũng có API định vị địa lý của Yahoo có giới hạn cao hơn Google.

5

Bạn có thể sử dụng dịch vụ được cung cấp bởi Yahoo có tên YQL. Dịch vụ này miễn phí cho một số yêu cầu giới hạn, lên đến 100.000 mỗi ngày. Sau đó, bạn có thể lấy vĩ độ và kinh độ ra khỏi phản hồi XML tại truy vấn/kết quả/địa điểm/centroid.

Một điều tôi đã nhận thấy với dịch vụ này là tên thành phố cần phải chính xác và có thể có nhiều kết quả.

http://developer.yahoo.com/yql/

Ví dụ YQL truy vấn:

http://query.yahooapis.com/v1/public/yql?q=SELECT * FROM geo.places WHERE text="Seattle" and placeTypeName = "Town"

đáp ứng XML:

<?xml version="1.0" encoding="UTF-8"?> 
<query xmlns:yahoo="http://www.yahooapis.com/v1/base.rng" yahoo:count="1" yahoo:created="2012-07-09T16:20:40Z" yahoo:lang="en-US"> 
    <results> 
    <place xmlns="http://where.yahooapis.com/v1/schema.rng" xml:lang="en-US" yahoo:uri="http://where.yahooapis.com/v1/place/2490383"> 
     <woeid>2490383</woeid> 
     <placeTypeName code="7">Town</placeTypeName> 
     <name>Seattle</name> 
     <country code="US" type="Country">United States</country> 
     <admin1 code="US-WA" type="State">Washington</admin1> 
     <admin2 code="" type="County">King</admin2> 
     <admin3/> 
     <locality1 type="Town">Seattle</locality1> 
     <locality2/> 
     <postal/> 
     <centroid> 
     <latitude>47.603561</latitude> 
     <longitude>-122.329437</longitude> 
     </centroid> 
     <boundingBox> 
     <southWest> 
      <latitude>47.422359</latitude> 
      <longitude>-122.472153</longitude> 
     </southWest> 
     <northEast> 
      <latitude>47.745071</latitude> 
      <longitude>-122.176193</longitude> 
     </northEast> 
     </boundingBox> 
     <areaRank>6</areaRank> 
     <popRank>12</popRank> 
    </place> 
    </results> 
</query> 
<!-- total: 82 --> 
<!-- engine5.yql.mud.yahoo.com -->