Tôi đang sử dụng API Google Maps để tạo bản đồ có đầy đủ các điểm đánh dấu, nhưng tôi muốn một điểm đánh dấu nổi bật so với các điểm đánh dấu khác. Điều đơn giản nhất để làm, tôi nghĩ, sẽ thay đổi màu của điểm đánh dấu thành màu xanh, thay vì màu đỏ. Đây có phải là một điều đơn giản để làm hoặc tôi phải tạo ra một biểu tượng hoàn toàn mới bằng cách nào đó? Nếu tôi phải tạo một biểu tượng mới, cách dễ nhất để làm điều đó là gì?Làm cách nào để thay đổi màu của điểm đánh dấu trên Google Maps?
Trả lời
Kể từ bản đồ v2 bị phản đối, bạn có lẽ quan tâm đến bản đồ v3: https://developers.google.com/maps/documentation/javascript/markers#simple_icons
Đối với bản đồ v2:
http://code.google.com/apis/maps/documentation/overlays.html#Icons_overview
Bạn sẽ có một bộ logic làm tất cả các chân 'thường xuyên' và một loại pin khác sử dụng điểm đánh dấu mới được xác định.
Lưu ý cho người đọc trong tương lai: Đây là dành cho Google Maps API v2 không được dùng nữa. Nếu bạn đang sử dụng v3, thì bạn cần phải tìm ở nơi khác. – priestc
MapIconMaker: một thư viện cho Google Maps v2
Một cách là sử dụng MapIconMaker. Có một ví dụ here. Google Maps biểu tượng mặc định là 20px chiều rộng và 34px chiều cao, vì vậy bạn có thể sử dụng một cái gì đó như thế này để thi đua:
var newIcon = MapIconMaker.createMarkerIcon({width: 20, height: 34, primaryColor: "#0000FF", cornercolor:"#0000FF"});
var marker = new GMarker(map.getCenter(), {icon: newIcon});
Bạn thậm chí có thể bọc nó trong một số chức năng để làm cho mọi việc dễ dàng hơn trên bản thân:
function getIcon(color) {
return MapIconMaker.createMarkerIcon({width: 20, height: 34, primaryColor: color, cornercolor:color});
}
Đó là những gì cá nhân tôi sử dụng cho tất cả các điểm đánh dấu mà tôi tạo. Tôi thích có tùy chọn để thay đổi màu sắc của một ý thích.
Cập nhật: Màu Hex của biểu tượng mặc định là "# FE7569". Ngoài ra, bạn có thể setImage trên Marker thay vì tạo một Marker mới với một biểu tượng mới. Vì vậy, nếu bạn muốn có một chức năng để làm nổi bật bạn có thể đi với một cái gì đó như thế này, bằng cách sử dụng chức năng trên:
function highlightMarker(marker, highlight) {
var color = "#FE7569";
if (highlight) {
color = "#0000FF";
}
marker.setImage(getIcon(color).image);
}
StyledMarker: một thư viện cho Google Maps v3
Kể từ V2 đã được thay thế bởi V3 đôi khi trước, tôi nghĩ Tôi nên cập nhật câu trả lời này. Tôi đã tạo một thư viện cho các đánh dấu tùy chỉnh có thể được tìm thấy trên Thư viện Tiện ích V3 here. Nó cho phép các màu sắc và hình dạng khác nhau và bạn cũng có thể đặt văn bản trên điểm đánh dấu. Nó hoạt động bằng cách sử dụng API Google Charts có các phương pháp tạo dấu đánh dấu Google Maps. Vui lòng xem mã nguồn nếu bạn muốn sử dụng API Google Charts trực tiếp. Tuy nhiên, điều về thư viện đó là việc chăm sóc xác định vùng có thể nhấp của những hình ảnh điểm đánh dấu này cho bạn, ví dụ, bong bóng dài hơn với văn bản sẽ có các vùng có thể nhấp được mong đợi, chẳng hạn như this example.
Dường như điều này chỉ tương thích với GMaps API v2? – Tigraine
@Tigraine Tôi thực sự đã tạo một thư viện hoàn toàn mới để sử dụng cho v3 có tên "StyledMarker" có thể được tìm thấy trên Thư viện Tiện ích v3: http://code.google.com/p/google-maps-utility-library-v3/ wiki/Thư viện – Bob
xem câu trả lời của Sean McMains cho v3 – smp7d
Với phiên bản 3 của Google Maps API, cách dễ nhất để làm điều này có thể bằng cách lấy một bộ biểu tượng tùy chỉnh, như một trong đó Benjamin Keen đã tạo ra ở đây:
http://www.benjaminkeen.com/?p=105
Nếu bạn đặt tất cả những biểu tượng ở cùng một vị trí như trang bản đồ của bạn, bạn có thể tô màu cho một Marker đơn giản bằng cách sử dụng tùy chọn biểu tượng thích hợp khi tạo ra nó:
var beachMarker = new google.maps.Marker({
position: myLatLng,
map: map,
icon: 'brown_markerA.png'
});
Đây là siêu dễ dàng, và là cách tiếp cận tôi đang sử dụng cho dự án tôi đang làm việc vào hiện tại.
Câu trả lời này thật tuyệt vời. Tôi đã buồn rằng câu trả lời được chấp nhận là cho V2, nhưng may mắn di chuyển xuống trả hết. Cảm ơn! –
Cá nhân, tôi nghĩ rằng các biểu tượng được tạo bởi API Google Charts trông tuyệt vời và dễ dàng tùy chỉnh động.
Xem câu trả lời của tôi trên Google Maps API 3 - Custom marker color for default (dot) marker
Cách đơn giản nhất tôi thấy là sử dụng BitmapDescriptorFactory.defaultMarker() các documentation thậm chí còn có một ví dụ về cách thiết lập các màu sắc. Từ mã của riêng tôi:
MarkerOptions marker = new MarkerOptions()
.title(formatInfo(data))
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE))
.position(new LatLng(data.getLatitude(), data.getLongitude()))
Bạn không cần bất kỳ thư viện tùy chỉnh nào cho Google Maps v3.
var pinColor = "FE7569";
var pinImage = new google.maps.MarkerImage("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=%E2%80%A2|" + pinColor,
new google.maps.Size(21, 34),
new google.maps.Point(0,0),
new google.maps.Point(10, 34));
var pinShadow = new google.maps.MarkerImage("http://chart.apis.google.com/chart?chst=d_map_pin_shadow",
new google.maps.Size(40, 37),
new google.maps.Point(0, 0),
new google.maps.Point(12, 35));
var marker = new google.maps.Marker({
position: new google.maps.LatLng(0,0),
map: map,
icon: pinImage,
shadow: pinShadow
});
từ Matt Burns Điều này có hiệu lực từ tháng 10 năm 2014 nhưng không được chấp nhận.
Tính năng này đã không được dùng nữa [như bạn có thể thấy ở đây] (https://developers.google.com/chart/infographics/). Đây là một tình huống đáng thất vọng, điều này không được chấp nhận và phiên bản trước tôi đã sử dụng, 'MapIconMaker', đã không được chấp nhận. – zerowords
Lưu ý rằng thao tác này không hoạt động với https, chỉ http. Rất tiếc! – JoeGalind
@JoeGalind có yêu cầu mã hóa lý do nào khi tìm nạp màu không? Ý tôi là, tôi thấy không có rủi ro bảo mật nào khi sử dụng 'http' trừ khi nó lộ ra cái gì đó mà tôi không biết trong tiêu đề –
- 1. Thay đổi Tiêu đề trên Điểm đánh dấu của Google Maps
- 2. API Google Maps v3: Làm cách nào để tự động thay đổi biểu tượng điểm đánh dấu?
- 3. Điểm đánh dấu hoạt ảnh trên Google Maps v2
- 4. Thay đổi màu lề của giao diện InfoWindow của điểm đánh dấu trong google maps api v2
- 5. Làm cách nào để xóa điểm đánh dấu trên Google Maps?
- 6. Google Maps: Hiển thị điểm đánh dấu phía trên markerclusterer
- 7. Cách di chuyển điểm đánh dấu trong API Google Maps
- 8. API Google Maps Android v2 - cách thay đổi biểu tượng điểm đánh dấu
- 9. Làm cách nào để kích hoạt sự kiện onclick của điểm đánh dấu trên V3 của Google Maps?
- 10. Thay đổi kích thước điểm đánh dấu tùy thuộc vào thu phóng Google maps v3
- 11. Đặt điểm đánh dấu trên tất cả các điểm đánh dấu khác trong Google Maps SDK iOS
- 12. Thêm nhiều điểm đánh dấu với infowindows (API Google Maps)
- 13. URL cho nhiều điểm đánh dấu trong Google Maps
- 14. Google Maps - Hàng nghìn điểm đánh dấu - JSON
- 15. Google Maps: Làm cách nào để thay đổi chỉ mục z của một Marker?
- 16. Làm cách nào để xoay điểm đánh dấu trong Google Maps?
- 17. Làm cách nào để đánh dấu một khu vực trên Google Maps
- 18. Chuyển đổi Bản vẽ thành bitmap để thay đổi màu của Điểm đánh dấu trong API Android của Google Maps v2
- 19. Google Maps v3 - Điểm đánh dấu không hiển thị
- 20. Javascript, Thay đổi màu đánh dấu bản đồ google
- 21. Google maps api v2 phóng to gần điểm đánh dấu
- 22. Sử dụng SVG cho điểm đánh dấu trong Google Maps?
- 23. Google Maps - Nhiều điểm đánh dấu từ extern json
- 24. Google Maps API Nhiều Điểm đánh dấu với Infowindows
- 25. Cách sử dụng google maps API với nhiều điểm đánh dấu trên cùng một bản đồ
- 26. Điểm đánh dấu Bouncy trong Google Maps v3
- 27. Làm cách nào để đặt cửa sổ bật lên trên các điểm đánh dấu bằng API Google Maps?
- 28. Làm cách nào để đặt các điểm đánh dấu trên Google Maps từ các nguồn dữ liệu JSON bên ngoài?
- 29. Tắt hành vi nhấp chuột của điểm đánh dấu POI trong API JS Maps của Google Maps
- 30. Tôi có thể thay đổi điểm đánh dấu trong bản đồ được nhúng của Google Maps (iframe) không?
Bạn có thể muốn kiểm tra bài đăng này từ hôm qua: http://stackoverflow.com/questions/2467720/how-to-change-color-of-marker-in-google-map –
hoặc có lẽ là bài đăng tốt hơn http: //stackoverflow.com/questions/7095574/google-maps-api-3-custom-marker-color-for-default-dot-marker – Faizan