2013-08-08 25 views
8

Tôi đã thấy nhiều người dùng đã đặt câu hỏi này, nhưng trên thực tế vẫn chưa có câu trả lời với các ví dụ về cách sử dụng Google Maps mà không có khóa (tất cả các câu trả lời đều là tham chiếu đến một trang web khác) .Làm cách nào để sử dụng Google Maps mà không có khóa? (từ tĩnh đến động với URL)

Tôi đã quản lý để sử dụng Google Maps mà không có khóa, nhưng tôi chỉ quản lý để có được một bản đồ tĩnh. Bạn có bất kỳ ý tưởng làm thế nào để năng động này?

var img = new Image(); 

img.src = "http://maps.googleapis.com/maps/api/staticmap?center=-32.0000343,-58.0000343&zoom=5&size=300x300&sensor=true&visualRefresh=true"; 

return img; //OR document.body.appendChild(img); 

Thậm chí nếu bạn chỉ cần nhấp vào liên kết này, bạn có thể xem bản đồ, và nếu bạn thay đổi "tính url" bạn có thể "chỉnh sửa" bản đồ: http://maps.googleapis.com/maps/api/staticmap?center=-32.0000343,-58.0000343&zoom=5&size=300x300&sensor=true&visualRefresh=true

Khi tôi nói "năng động bản đồ" Ý tôi là để somethins như thế này: https://google-developers.appspot.com/maps/documentation/javascript/v2/examples/map-simple

+1

Ý anh là gì bởi "năng động"? Bạn muốn có liên kết đến [Google Map] (https://maps.google.com/maps?q=lincoln,+NE&hl=vi&sll=40.85968,-74.157769&sspn=0.201496,0.304871&hnear=Lincoln,+Lancaster,+Nebraska&t = m & z = 12), vì vậy bạn có thể phóng to và xoay nó? Giống như [this] (https://maps.google.com/maps?q=-32.0000343,-58.0000343&hl=vi&ll=-31.952162,-58.007812&spn=7.230774,9.755859&sll=40.806862,-96.681679&sspn=0.201657,0.304871&t = m & z = 5) – geocodezip

+0

Chính xác! Xin lỗi tôi sẽ thêm điều này vào mô tả – gal007

+0

Đi tới bản đồ google. Thiết lập bản đồ như bạn muốn nó xuất hiện. Nhấp vào biểu tượng "liên kết" (trông giống như một chuỗi). Sao chép URL đó và sử dụng nó. Hoặc để kiểm soát nhiều hơn, hãy sử dụng Google [API Javascript Maps v3] (https://developers.google.com/maps/documentation/javascript/basics) – geocodezip

Trả lời

13

như @geocodezip nói: Bạn đang tìm kiếm Google Ma ps Javascript v3.

Đây là ví dụ đơn giản về sử dụng nó (được chọn từ số old answer) của tôi, điều này không cần bất kỳ khóa nào.

HTML:

<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script> 
<div id="map-canvas"></div> 

CSS:

#map-canvas { 
     margin: 0; 
     padding: 0; 
     height: 100%; 
     } 

Javascript:

function initialize() { 
    var myLatlng = new google.maps.LatLng(43.565529, -80.197645); 
    var mapOptions = { 
     zoom: 8, 
     center: myLatlng, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    } 
    var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions); 

    //=====Initialise Default Marker  
    var marker = new google.maps.Marker({ 
     position: myLatlng, 
     map: map, 
     title: 'marker' 
    //=====You can even customize the icons here 
    }); 

    //=====Initialise InfoWindow 
    var infowindow = new google.maps.InfoWindow({ 
     content: "<B>Skyway Dr</B>" 
    }); 

    //=====Eventlistener for InfoWindow 
    google.maps.event.addListener(marker, 'click', function() { 
    infowindow.open(map,marker); 
    }); 
} 

google.maps.event.addDomListener(window, 'load', initialize); 

tôi đã tạo ra một 012.344.để bạn tham khảo.

Hy vọng bạn có một số ý tưởng.

Vì bạn không quan tâm đến việc sử dụng các phím, Beware of the limits.

API Javascript của Google Maps: tối đa 25.000 lượt tải bản đồ mỗi ngày cho mỗi dịch vụ .

này bao gồm:

  1. bản đồ sẽ được hiển thị bằng cách sử dụng API JavaScript của Google Maps (V2 hay V3) khi
    nạp bởi một trang web hoặc ứng dụng;
  2. Ảnh toàn cảnh Chế độ xem phố được hiển thị bằng API JavaScript của Maps (V2 hoặc V3) bởi một trang web hoặc ứng dụng không hiển thị bản đồ ;
  3. một SWF tải API Maps cho Flash được tải bởi trang web hoặc ứng dụng ; hoặc
  4. yêu cầu duy nhất được thực hiện cho hình ảnh bản đồ từ API bản đồ tĩnh.
  5. yêu cầu duy nhất được thực hiện cho hình ảnh toàn cảnh từ Chế độ xem phố API hình ảnh.

Từ ý kiến ​​của bạn,

tôi cũng cố gắng sử dụng canvas, nó đã không làm việc.

var mapCanvas = document.createElement("canvas"); 

Nhưng điều này hoạt động tốt với yếu tố div.

var mapCanvas = document.createElement("div"); 
mapCanvas.style.width = "200px"; 
mapCanvas.style.height = "200px"; 

Updated JSFiddle

Đừng quên để thiết lập các thuộc tính chiều rộng và chiều cao.

+0

Cảm ơn! Tôi nghĩ rằng tôi quên viết một số yêu cầu cho những gì tôi cần nhưng điều này giải quyết câu hỏi này vì vậy nó là câu trả lời (fiddle là rất tốt) – gal007

+0

Bạn có biết những gì là sai ở đây? http://jsfiddle.net/vQKkq/1/ – gal007

+0

@ gal007 nó không hoạt động với phần tử canvas. nhưng kiểm tra này fiddle http://jsfiddle.net/vQKkq/8/. Tôi đã sử dụng một 'div'. Hy vọng điều này là đủ. – Praveen

1
+0

Tôi cần thay đổi vị trí theo đơn đăng ký của mình, vì vậy tôi nghĩ API là đúng cách nhưng tất cả các ví dụ đều có khóa api và tôi muốn làm điều này mà không cần chìa khóa. – gal007

+0

Khóa API không bắt buộc đối với API Javascript của Google Maps v3. Đó là khuyến cáo và cần thiết nếu bạn muốn theo dõi việc sử dụng API của bạn hoặc nếu bạn chạy vào các giới hạn API miễn phí và muốn trả thêm tiền. – geocodezip

0

thử nó từ android phone

href = "google.streetview:cbll=51.470305,-0.183842&cbp=1,10,,0,2.0&mz=mapZoom" 

thêm video này vào liên kết neo của bạn

8

này đã làm việc cho tôi. Tôi đã thử nó trên localhost. Các giải pháp khác trong stackoverflow không giúp được gì.

<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.com/maps?q=<?php echo urlencode($address); ?>&amp;output=embed"></iframe><br /> 

Bằng cách này, chúng tôi có thể tạo bản đồ dựa trên địa chỉ mà chúng tôi đã nhập vào phần sau.

3

tôi đưa một ví dụ về plunker

http://plnkr.co/T4eULTnKbWCKlABPI4pu

và mã

<!DOCTYPE html> 
<html> 
<body> 

<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.com/maps?q=London&amp;ie=UTF8&amp;&amp;output=embed"></iframe><br /> 

</body> 
</html>