Tips Creating Interactive Maps with Mapbox + React

ducthang229

New member
[TIẾNG VIỆT]:
** Tạo bản đồ tương tác với Mapbox + React **

MAPBox là nhà cung cấp hàng đầu về API và SDK ánh xạ.Nó cung cấp một loạt các công cụ và dịch vụ giúp bạn dễ dàng tạo bản đồ tương tác.React là một thư viện JavaScript phổ biến để xây dựng giao diện người dùng.Nó được biết đến với hiệu suất và khả năng tạo UI phức tạp và năng động.

Trong bài viết này, chúng tôi sẽ chỉ cho bạn cách tạo bản đồ tương tác với Mapbox và React.Chúng tôi sẽ bắt đầu bằng cách tạo một bản đồ đơn giản với một vài điểm đánh dấu.Sau đó, chúng tôi sẽ thêm một số tương tác vào bản đồ, cho phép người dùng phóng to và thu nhỏ, xoay quanh và nhấp vào các điểm đánh dấu để có thêm thông tin.

## Điều kiện tiên quyết

Để làm theo với hướng dẫn này, bạn sẽ cần những điều sau đây:

* Một sự hiểu biết cơ bản về JavaScript và React
* Tài khoản Mapbox
* Hộp bản đồ phản ứng SDK

## Bắt đầu

Để tạo một dự án mới, chúng ta có thể sử dụng lệnh sau:

`` `
NPX created-react-app-app-map
`` `

Điều này sẽ tạo ra một dự án phản ứng mới trong thư mục `map`.

Tiếp theo, chúng ta cần cài đặt SDK Mapbox React.Chúng ta có thể làm điều này bằng cách chạy lệnh sau:

`` `
NPM Cài đặt Mapbox-React
`` `

## Tạo một bản đồ đơn giản

Để tạo bản đồ đơn giản, chúng ta có thể sử dụng mã sau:

`` `JS
nhập phản ứng, {usestate} từ "React";
Nhập MAPBoxGL từ "Mapbox-Gl";

const app = () => {
const [zoom, setZoom] = usestate (10);
const [centre, setCenter] = usestate ({lat: 37.7749, lng: -122.4194});

trở lại (
<Mapboxgl
accessToken = {process.env.React_app_mapbox_access_token}
style = "Mapbox: // styles/mapbox/street-v11"
zoom = {zoom}
centre = {centre}
>
<Điểm đánh dấu
lat = {37.7749}
lng = {-122.4194}
icon = {"https://raw.githubusercontent.com/mapbox/mapbox-ll-js/master/examples/images/marker-icon.png"}
>
<Div>
<h3> San Francisco </H3>
<p> Dân số: 884.363 </p>
</div>
</Marker>
</Mapboxgl>
);
};

Xuất ứng dụng mặc định;
`` `

Mã này sẽ tạo một bản đồ với một điểm đánh dấu duy nhất tại vị trí của San Francisco.Điểm đánh dấu sẽ có một tiêu đề và dân số.

## Thêm tính tương tác

Để thêm tính tương tác vào bản đồ, chúng ta có thể sử dụng các phương pháp sau:

* `onzoom` - Phương thức này được gọi khi mức thu phóng của bản đồ thay đổi.
* `onpan` - Phương thức này được gọi khi bản đồ được pared.
* `onclick` - Phương thức này được gọi khi nhấp vào điểm đánh dấu.

Chúng ta có thể sử dụng các phương pháp này để cập nhật trạng thái của bản đồ và để kích hoạt các hành động khác nhau.Ví dụ: chúng ta có thể sử dụng phương thức `onzoom` để cập nhật mức thu phóng của bản đồ và chúng ta có thể sử dụng phương thức` onclick` để mở cửa sổ phương thức với thêm thông tin về điểm đánh dấu.

## Phần kết luận

Trong hướng dẫn này, chúng tôi đã chỉ cho bạn cách tạo bản đồ tương tác với Mapbox và React.Chúng tôi bắt đầu bằng cách tạo một bản đồ đơn giản với một vài điểm đánh dấu.Sau đó, chúng tôi đã thêm một số tương tác vào bản đồ, cho phép người dùng phóng to và thu nhỏ, xoay quanh và nhấp vào các điểm đánh dấu để có thêm thông tin.

Bạn có thể tìm thấy mã đầy đủ cho hướng dẫn này trên [trang web MAPBox] (https://docs.mapbox.com/mapbox-gl-js/examples/interactive-map/).

[ENGLISH]:
**Creating Interactive Maps with Mapbox + React**

Mapbox is a leading provider of mapping APIs and SDKs. It offers a variety of tools and services that make it easy to create interactive maps. React is a popular JavaScript library for building user interfaces. It is known for its performance and its ability to create complex and dynamic UIs.

In this article, we will show you how to create an interactive map with Mapbox and React. We will start by creating a simple map with a few markers. Then, we will add some interactivity to the map, allowing users to zoom in and out, pan around, and click on markers to get more information.

## Prerequisites

To follow along with this tutorial, you will need the following:

* A basic understanding of JavaScript and React
* A Mapbox account
* The Mapbox React SDK

## Getting Started

To create a new project, we can use the following command:

```
npx create-react-app my-map
```

This will create a new React project in the `my-map` directory.

Next, we need to install the Mapbox React SDK. We can do this by running the following command:

```
npm install mapbox-react
```

## Creating a Simple Map

To create a simple map, we can use the following code:

```js
import React, { useState } from "react";
import MapboxGL from "mapbox-gl";

const App = () => {
const [zoom, setZoom] = useState(10);
const [center, setCenter] = useState({ lat: 37.7749, lng: -122.4194 });

return (
<MapboxGL
accessToken={process.env.REACT_APP_MAPBOX_ACCESS_TOKEN}
style="mapbox://styles/mapbox/streets-v11"
zoom={zoom}
center={center}
>
<Marker
lat={37.7749}
lng={-122.4194}
icon={"https://raw.githubusercontent.com/mapbox/mapbox-gl-js/master/examples/images/marker-icon.png"}
>
<div>
<h3>San Francisco</h3>
<p>Population: 884,363</p>
</div>
</Marker>
</MapboxGL>
);
};

export default App;
```

This code will create a map with a single marker at the location of San Francisco. The marker will have a title and a population.

## Adding Interactivity

To add interactivity to the map, we can use the following methods:

* `onZoom` - This method is called when the zoom level of the map changes.
* `onPan` - This method is called when the map is panned.
* `onClick` - This method is called when a marker is clicked.

We can use these methods to update the state of the map and to trigger different actions. For example, we could use the `onZoom` method to update the zoom level of the map, and we could use the `onClick` method to open a modal window with more information about a marker.

## Conclusion

In this tutorial, we showed you how to create an interactive map with Mapbox and React. We started by creating a simple map with a few markers. Then, we added some interactivity to the map, allowing users to zoom in and out, pan around, and click on markers to get more information.

You can find the full code for this tutorial on the [Mapbox website](https://docs.mapbox.com/mapbox-gl-js/examples/interactive-map/).
 
Join Telegram ToolsKiemTrieuDoGroup
Back
Top